第五章:数据库设计
5.1 数据库设计概述
5.1.1 数据库设计的定义和知识要求
1. 数据库设计是对于一个给定的应用环境,根据用户的需求,在某一具体的数据库管理系统上,构造一个性能良好的数据模式,建立数据库及其应用系统,使之能有效地存储数据,满足各种用户的信息要求和处理要求。
- 信息需求:数据库内容及结构的要求,静态。
- 处理需求:数据库要进行的数据处理,动态。
2. 数据库设计人员应具备的技术和知识:
- 计算机科学基础知识和程序设计技术。
- DB基本知识和DB设计技术。
- 软件工程的原理和方法。
- 应用领域的知识。
5.1.2 数据库设计的内容
数据库设计包括结构设计和行为设计两方面内容。
- 数据库的结构设计是指根据给定的应用环境,进行数据库的模式或子模式的设计。
- 数据库的行为设计是指确定数据库用户的行为和动作。
5.1.3 数据库的设计方法
设计方法有:直观设计法、规范设计法、计算机辅助设计法、自动化设计法。规范设计法中有基于实体联系的设计方法、基于3NF的数据库设计方法、基于视图概念的数据库设计方法等。
5.1.4 数据库设计的基本步骤
1. 需求分析:是整个设计过程的基础。
- 信息需求分析。
- 操作需求分析。
2. 概念结构设计:将需求分析的结果用一种工具进行形式化的定义和描述,是整个DB设计的关键。如:E-R图。
3. 逻辑结构设计:概念模型→数据模型。根据需求分析和概念设计的结果,选择合适的数据模型,并选用某一设计方法构造一数据库模式。
4. 物理设计:选择合适的物理结构。包括存储结构和存取方法。
5. 实施阶段:根据逻辑设计和物理设计建立数据库;编制和调试应用程序;试运行。
6. DB运行和维护阶段:根据运行记录对DB进行评价,根据评价对DB调整和修改。
5.2 需求分析
5.2.1 需求分析的任务
1. 信息要求:DB中需存储的数据。
2. 处理要求:用户要求的处理功能和对各处理的响应时间的要求。
3. 安全性与完整性要求。
(其实确定用户的最终需求是非常困难的!)
5.2.2 需求分析的方法和过程
1. 需求分析的常用方法:
- 跟班作业。
- 开调查会。
- 请专人介绍。
- 询问。
- 调查表。
- 查阅记录。
强调:①数据的收集要尽可能详尽,全面反映用户需求。 ②要考虑可能的扩充和改变。 ③必须强调用户的参与。
2. 调查用户需求的具体步骤:
- 分析用户活动,产生业务流程图。
- 确定系统范围,产生业务范围图。
- 分析用户活动及所涉及的数据,产生数据流图。
- 分析系统数据,产生数据字典。
- 功能分析。
5.2.3 需求分析常用工具
1. 数据流图(DFD):以图形的方式描绘数据在系统中流动和处理的过程。
例如:
2. 数据字典:数据字典是关于数据的数据库,它是对数据流程图上各个元素作出详细的定义和说明。通常包括下面五个部分:
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
数据字典5个组成部分 | 描述 |
---|---|
数据项 | 数据项是不可再分的数据单位 |
数据结构 | 数据结构反应了数据之间的组合关系 |
数据流 | 数据流是数据结构在系统内传输的途径 |
数据存储 | 数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。 |
处理过程 | 只需要描述处理过程的说明性信息 |
5.3 概念结构设计
5.3.1 概念结构设计的定义
1. 不同DBMS基于不同的数据模型,而现实应用环境复杂多变,将现实世界中的事物直接转换为机器中的对象,非常不方便。
2. 概念模型是现实世界到机器世界的一个中间层次,使用接近计算机存储的方式表示数据,同时又不涉及具体的DBMS。
注意:概念模型的描述工具通常是E_R模型,该模型不依赖于具体的硬件环境和DBMS。
5.3.2 概念结构设计方法
1. 自顶向下(集中模式设计):先定义全局,然后再逐步细化。
2. 自底向上(视图集成法):先定义局部,然后再集成起来。
3. 混合策略:自底向上和自顶向下相结合。
4. 逐步扩张(由内向外法):先定义核心,然后再逐步向外扩充。
5.3.3 局部E-R图设计
1. 选择局部应用。一般而言,中层数据流图能较好反应系统各局部应用的子系统组成,因此通常以中层数据流图作为设计分E-R图的依据。
2. 从数据字典中抽取数据。依据数据流图,标定局部应用中的实体、实体属性、标识实体的码,确定联系及类型。
3. 逐一设计分E-R图:
- 标定局部应用中的实体。
- 标定实体的属性、标识实体的码。
- 确定实体之间的联系。
例如:
5.3.4 集成全局视图
1.视图集成要解决的问题:
- 确定模式之间的对应和冲突。
- 修改视图使得相互一致。
- 合并视图。
- 重构。
2. 视图集成策略:二元集合、n元集合、二元平衡策略、混合策略。
例如:
5.4 逻辑结构设计
5.4.1 逻辑结构设计的任务和步骤
- 将概念模型转化为等价的关系模式。
- 按需要对关系模式进行规范化。
- 对规范化后的模式进行评价。
- 根据局部应用的需要,设计用户外模式。
5.4.2 E-R图向关系模型转换的原则
1. 实体的转换:一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。
2. 联系的转换:
- 联系类型为1:1:与该联系相连的各实体的码以及联系本身的属性构成新关系的属性,每个实体的码均是该关系的候选码。
- 联系类型为1:n:与该联系相连的各实体的码以及联系本身的属性构成新关系的属性,该关系的码是n端关系模式的码。
- 联系类型为n:m:与该联系相连的各实体的码以及联系本身的属性构成新关系的属性,该关系的码是两端关系模式码的组合。
5.4.3 逻辑结构的优化
- 确定数据依赖。
- 对于各关系模式间的数据依赖进行极小化处理,消除冗余的联系。
- 规范化。