数据库系统概论笔记(7)

第7章数据库设计

7.1数据库设计概述

数据库设计定义:对给定的应用环境,构造数据库逻辑模式和物理结构,要能满足信息管理和数据操作的要求
高效的运行环境:数据库数据的存取效率高、数据库存储空间的利用率高、数据库系统运行管理的效率高

数据库建设的基本规律

三分技术,七分管理,十二分基础数据

数据库设计方法

E-R模型设计方法

数据库设计的基本步骤

6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护

参与设计的人员:系统分析人员、数据库设计人员、应用开发人员、数据库管理人员、用户代表

数据库设计过程中的各级模式

7.2需求分析

需求分析的任务

调查重点:数据和处理

获得用户对数据库的要求:

  1. 信息要求
  2. 处理要求
  3. 安全性与完整性要求
    困难点:用户缺少计算机知识、设计人员缺少用户的专业知识

需求分析的方法

调查用户需求的具体步骤:

  1. 调查组织机构情况
  2. 调查各部门业务活动情况
  3. 协助用户明确对新系统的各种要求
  4. 确定新系统的边界

常用的调查方法:

  1. 跟班作业
  2. 开调查会
  3. 请专人介绍
  4. 询问
  5. 设计调查表请用户填写
  6. 查阅记录

分析方法:结构化分析方法(SA)是一种简单实用的方法
SA方法:从最上层的系统组织机构入手,采用自顶向下,逐层分解的方式分析系统

数据字典

数据字典概念:关于数据库中数据的描述,即元数据,不是数据本身
建立时期:在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善

数据项:

  • 概念:数据项是不可再分的数据单位
  • 描述:数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}
    “取值范围”、与其他数据项的逻辑关系“”定义了数据的完整性约束条件

数据结构:

  • 概念:数据结构反映了数据之间的组合关系
  • 描述:数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}

数据流:

  • 概念:数据流是数据结构在系统内传输的路径
  • 描述:数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}
    数据流来源:数据流来自哪个过程
    数据流去向:数据流要去哪个过程
    平均流量:单位时间里的传输次数
    高峰期流量:高峰时期的数据流量

数据存储:

  • 概念:数据结构停留或保存的地方
  • 描述:数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
    存储频度:每小时、每天或每周存取次数及每次存取的数据量等信息
    存取方式:批处理/联机处理、检索/更新、顺序检索/随机检索

处理过程:

  • 概念:描述处理过程的说明性信息(具体处理逻辑一般用判定树或判定表来描述)
  • 描述:处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}

注意点:

  1. 困难是收集将来应用所涉及的数据
  2. 必须强调用户的参与

7.3概念结构设计

概念:将需求分析得到的用户需求抽象为信息结构(概念模型)的过程

概念模型

主要特点:

  1. 能真实、充分地反映现实世界
  2. 易于理解
  3. 易于更改
  4. 易于向关系、网状、层次等各种数据模型转换

有力工具:E-R模型

E-R模型

E-R模型包括:实体、属性、实体之间的联系、关键字/码等

实体之间的联系

  • 联系的度:参与联系的实体型数目(N个实体型之间的联系度为N,称为N元联系)
  1. 两个实体型之间的联系
    三种:一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n)
  2. 两个以上的实体型之间的联系
  3. 单个实体型内的联系

E-R图的表示符号

  1. 实体型用矩形表示
  2. 属性用椭圆形表示
  3. 联系用菱形表示

整体E-R图:只列出实体及其联系(包括联系的属性)
局部E-R图:只列出实体及其属性
完整E-R图:整体E-R图与局部E-R图合并

注意:

  1. 不能存在孤立的实体
  2. 两个实体不能通过属性来连接(也不能直接相连)
  3. 联系上的属性不能冗余(与其相连实体所拥有的属性重复)

概念结构设计

实体与属性的划分原则:

  • 一条原则:现实的事物若能作为属性则尽量作为属性(简化E-R图)
  • 可作为属性的两条准则:
    1)作为属性,不能再具有需要描述的性质
    2)属性不能与其他实体具有联系

E-R图的集成(两步):

  1. 合并:解决各分E-R图之间的冲突,将分E-R图合并起来生成初步E-R图
     三类冲突:
      1)属性冲突:包括属性域冲突、属性取值单位冲突
      2)命名冲突:包括同名异义、异名同义
      3)结构冲突:
       3a:同一对象在不同应用中具有不同的抽象。解决:把属性变为实体(一般操作)或把实体变为属性,使同一对象具有相同的抽象
       3b:同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。解决:使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序
       3c:实体间的联系在不同的E-R图中为不同的类型。解决:根据应用的语义对实体联系的类型进行综合或调整
  2. 修改和重构:消除不必要的冗余,设计基本E-R图
     消除的两种冗余:
      1)冗余的数据:可由基本数据导出的数据
      2)冗余的联系:可由其他联系导出的联系
     (注:非所有冗余都必须消除,有时候会以冗余为代价提高效率)
     规范化理论消除冗余:
      1)确定分E-R图实体之间的数据依赖FL
      2)求FL的最小覆盖GL,和差集D=FLGL
     (注:A:冗余的联系一定在D中,而D中的联系不一定是冗余的;B:当实体之间存在多种联系时,要将实体之间的联系在形式上加以区分;C:尽可能少用无属性的联系)

7.4逻辑结构设计

任务:把概念结构设计阶段的E-R图转换为逻辑结构(与选用DBMS产品所支持的数据模型相符合的逻辑结构)

E-R图向关系模型的转换

对于实体型:一个实体型转换为一个关系模式,关系的属性就是实体的属性,关系的码就是实体的码
对于实体型之间的联系(分情况):

  • 1:1联系:转换为一个独立的关系模式,或与任意一端对应的关系模式合并
     1)转为独立的关系模式:
      属性:与该联系相连的各实体的码以及联系本身的属性
      候选码:每个实体的码
     2)与任一端对应的关系模式合并:
      属性:加入另一关系模式的码和联系本身的属性
      候选码:不变
  • 1:n联系:转换为一个独立的关系模式,或与n端对应的关系模式合并
     1)转为独立的关系模式:
      属性:与该联系相连的各实体的码以及联系本身的属性
      候选码:n端实体的码
     2)与n端对应的关系模式合并:
      属性:加入另一关系模式的码和联系本身的属性
      候选码:不变
  • m:n联系:转换为一个关系模式
      属性:与该联系相连的各实体的码以及联系本身的属性
      候选码:各实体码的组合
  • 三个或三个以上的实体间的一个多元联系:转换为一个关系模式
     属性:与该联系相连的各实体的码以及联系本身的属性
     候选码:各实体码的组合
  • 具有相同码的关系模式:合并关系模式
     方法:将其中一个关系模式的全部属性加入到另一个关系模式中,去掉同义属性(可能同名或不同名),适当调整属性的次序

转换后关系模式的数量:

  • 最小值:实体型数量+m:n联系数量
  • 最大值:实体型数量+联系数量

数据模型的优化

数据库逻辑设计的结果不是唯一的
关系数据模型的优化方法:

  1. 确定数据依赖
  2. 对于每个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
  3. 确定各关系模式分属第几范式
  4. 分析模式是否适合应用环境(确定是否要对某些模式进行合成或分解)
  5. 对关系模式进行必要分解,提高数据操作效率和存储空间利用率
    两种分解方法:
     水平分解:把基本关系的元组分为若干子集合,定义每个子集合为一个子关系,提高系统效率
     垂直分解:把关系模式R的属性分解为若干子集合,形成若干子关系模式

设计用户子模式

定义用户外模式时注重的方面:

  1. 使用更符合用户习惯的别名
  2. 可以对不同级别的用户定义不同的视图,以保证系统的安全性
  3. 简化用户对系统的使用

7.5物理结构设计

物理结构:物理设备上的存储结构与存储方法称为数据库的物理结构
物理设计:为给定的逻辑数据模型选物理结构的过程

物理设计的两步:

  1. 确定数据库的物理结构
  2. 对物理结构进行评价

数据库物理设计的内容和方法

前提:了解产品提供的环境、知道DBMS的内部特征
关系数据库物理设计内容:主要包括关系模式选择存取方法、设计关系、索引等数据库文件的物理存储结构

关系模式存取方法选择

索引方法

索引的存储格式:索引字段+行指针
索引的存储:索引文件中的索引指向主文件中相应的数据
索引文件的两种组织方式:排序索引文件、散列索引文件
建立索引的考虑:访问时间、插入时间、删除时的时空负载等
多级索引:索引项上再建立索引

B+树索引存取方法的选择

一般建立规则:

  1. 经常在查询条件中出现的一个(组)属性
  2. 经常作为最大值和最小值等聚集函数的参数的属性
  3. 经常在连接操作的连接条件中出现的一个(组)属性
  4. 索引不是越多越好,系统维护索引要付出代价

hash索引存取方法的选择

选择条件:

  1. 一个关系的大小可预知,而且不变
  2. 关系的大小动态改变,但DBMS提供动态hash存取方法

聚簇存取方法的选择

聚簇:把在某些属性(聚簇码)上具有相同值的元组集中存放在连续的物理块中
关系:一个数据库可以有多个聚簇,一个关系只能有一个聚簇
建立聚簇的选择:

  1. 经常在一起进行连接操作的关系
  2. 经常出现在相等比较条件中的一组属性
  3. 值重复率很高的属性组
  4. 经常增删的少用聚簇
  5. 经常变长修改的少用聚簇

确定数据库的存储结构

考虑:存取时间、存储空间利用率、维护代价

  1. 确定数据的存放位置:
    根据应用情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放
  2. 确定系统配置

*7.6数据库的实施和维护

  1. 数据的载入和应用程序的调试
  2. 数据库的试运行
  3. 数据库的运行和维护
posted @   kksk43  阅读(428)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
特效
黑夜
侧边栏隐藏
点击右上角即可分享
微信分享提示