文章目录
第七章 数据库设计
7.1 数据库设计概述
数据库设计的特点“三分技术,七分管理,十二分基础数据”
7.1.1 数据库设计的六个阶段(熟练掌握)
- 需求分析
- 准确了解与分析用户需求(包括数据与处理)
- 最困难、最耗费时间的一步
- 概念结构设计
- 整个数据库设计的关键
- 形成一个独立于具体数据库管理系统的概念模型
- 逻辑结构设计
- 将概念结构转换为某个DBMS所支持的数据模型
- 优化
- 物理结构设计
- 为逻辑结构选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
- 数据库实施
- 建立数据库
- 编制与调试应用程序
- 组织数据入库
- 进行试运行
- 数据库运行和维护
- 经过试运行即可投入正式运行
- 运行过程中不断进行评估、调整与修改
需求分析和概念设计独立于任何数据库管理系统
逻辑设计和物理设计与选用的DBMS密切相关
图:数据库设计各个阶段的设计描述
7.1.2 数据库设计过程中的各级模式
7.2 需求分析
7.2.1 需求分析过程
7.2.2 数据字典
用途:进行详细的数据收集和数据分析所获得主要成果
数据字典是关于数据库中数据的描述,是元数据,而不是数据本身,在需求分析阶段建立,强调用户的参与
内容
- 数据项
- 不可再分的数据单位
- 数据项描述 = {数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}
- “取值范围”、“与其他数据项的逻辑关系”定义了数据的完整性约束条件
- 数据结构
- 数据之间的组合关系
- 数据结构描述 = {数据结构名,含义说明,组成:{数据项或数据结构}}
- 数据流
- 数据结构在系统内传输的路径
- 数据流描述 = {数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}
- 数据存储
- 数据结构停留或保存的地方,也是数据流的来源和去向之一
- 数据存储描述 = {数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
- 处理过程
- 一般用判定表或判定树来描述
- 处理过程描述 = {处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
7.3 概念结构
7.3.1 *E-R模型
7.3.2 概念结构设计
为了简化E- R图的处置,现实世界的事物能作为属性对待的尽量作为属性对待
- 作为属性不能再具有需要描述的性质
- 属性不能与其他实体具有联系
- 合并E-R图。生成初步的E-R图
产生冲突:- 属性冲突
- 命名冲突
- 结构冲突
- 消除不必要的冗余,设计基本E-R图
- 冗余容易破坏数据库的完整性,给数据库维护增加困难
7.4 逻辑结构
把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构
7.4.1 转化规则:
- 一个实体型转换为一个独立的关系模式
- 1:1联系可以与任何一端的关系模式合并
- 1:n联系一般和多端合并,放上1端的候选码
- m:n转换成一个独立的关系模式
- 三个或三个以上实体间的一个多元联系可以转换为一个关系模式
7.4.2 数据模型的优化
对关系模式进行必要分解,提高数据操作效率和存储空间利用率。常用的两种分解方法是水平分解和垂直分解
7.5 物理结构
关系模式常用存取方法:索引方法和聚簇方法
B+树索引和hash索引是数据库中经典的存取方法
7.6 例题
第七章相关习题
- 在数据库设计中,把数据需求写成文档,它是个类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,通常称为 数据字典
- E- R图向关系模型转化要解决的问题是如何将实体和实体之间的的联系转换成关系模式,并如何确定这些关系模式的属性和码
- 为提高数据操作的效率和存储空间的利用率,经过规范化处理之后的关系模式还需要进行一定的优化处理。优化是根据需求分析和概念设计中定义的事务的特点对关系模式进行必要的分解,常用的两种分解方法是水平分解和垂直分解
- 将概念模型转换为全局逻辑模型后,还需根据局部应用需求,结合具体DBMS的特点,设计用户的外模式(或用户视图)
- E-R图是数据库设计的工具之一,它适用于建立数据库的概念模型
- 数据库逻辑设计阶段的任务是建立数据模型
- 数据流程图(DFD)是用于描述结构化方法中需求分析阶段的工具