第六章 数据库设计(E-R图)
6.1 数据库设计概述
6.1.1 数据库设计的任务、内容和特点
- 数据库设计的任务:根据用户需求研制数据库结构的过程
- 数据库设计的内容
- 数据库的结构设计:给定应用环境,进行数据库的子模式或模式的设计。包括概念设计、逻辑设计和物理设计。又称静态模型设计。
- 数据库的行为设计:确定数据库用户的行为和动作。又称动态模型设计。
- 数据库设计的特点:强调结构设计和行为设计相结合,以数据模型为核心,建立一个完整、独立、共享、冗余小和安全有效的数据库系统。
6.1.2 数据库设计方法简述
- 设计方法种类
- 直观设计法(手工试凑法)
- 规范设计法:其中有个公认的权威,新奥尔良法。
- 计算机辅助设计法
- 自动化设计法
- 规范设计法
- 基于E-R模型的数据库设计方法
- 基于3NF的数据库设计方法
- 基于视图的数据库设计方法
6.1.3 数据库设计的步骤
- 系统需求分析阶段:确保用户目标一致性
- 概念结构设计阶段
- 逻辑结构设计阶段
- 物理结构设计阶段
- 数据库实施阶段
- 数据库运行与维护阶段
6.2 系统需求分析
6.2.1 需求分析的任务
- 调查分析用户活动
- 手机和分析需求数据,确定系统边界
- 编写系统分析报告
6.2.2 需求分析的方法
- 方法
- 自顶向下(主要,又称结构化分析方法,SA):用数据流图(DFD)和数据字典(DD)描述系统
- 自底向上
- 数据流图:表达了数据和处理过程的关系
- 数据字典:对系统中数据的详细描述,是各类数据结构和属性的清单。
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
6.2.3 案例的需求分析
- 案例的数据流程图
- 案例的数据字典
学生自然情况信息:学生的学号、学生的姓名、学生的年龄和学生的院系等
课程信息:课程的编号、课程的名字和授课教师等
教师的信息:教师的编号、教师的姓名、教师的性别、教师的职称和教授课程
任课信息:课程名和授课教师名等
学生选课信息:学生名、课程名和教师名等
课程分数信息:学生名、课程名和分数等
6.3 概念结构设计
6.3.1 概念结构设计的必要性
- 概念结构设计就是将需求分析得到的用户需求抽象为信息结构,即概念模型
- 优点
- 设计复杂程度大大降低,便于组织管理
- 概念模型不收特定的DBMS的限制,也独立于存储安排和效率方面的考虑,比逻辑模型更稳定
- 不含具体的DBMS附加的基数细节,更容易理解,因而更准确反映用户的信息需求
6.3.2 概念模型的特点
- 语义表达能力丰富
- 易于交流和理解
- 易于修改和扩充
- 易于向各种数据模型转换
6.3.3 概念模型的E-R表示方法
- 实体型:用矩形框表示,框内标注实体名称
- 属性:用椭圆形框表示,框内标注属性名称,并用无向线将与其实体向连
- 联系:用菱形框表示,框内标注联系名称
- 联系本身就是实体的一种,也可以有属性
6.3.4 概念结构设计的方法与步骤
- 概念结构设计的方法
- 自顶向下:先定义去全局,在逐步细化
- 自底向上:先定义各局部应用的概念结构E-R模型,然后集成,得到全局概念结构E-R模型
- 逐步扩张:先定义核心的E-R模型,然后向外扩充,滚雪球一样
- 混合策略:自顶向下的需求分析,自底向上的设计概念结构
- 概念设计的步骤(自底向上的设计方法)
- 进行数据抽象,设计局部E-R图,即设计用户视图
- 集成各局部E-R模型,形成全局E-R模型,即视图集成
- 数据抽象与局部E-R模型设计
- E-R方法;关键在于正确划分实体和属性
- 数据抽象:分类和聚集
- 分类(Classification):定义某一类概念,将一组具有某些共同特性和行为的对象抽象为一个实体
- 聚集(Aggregation):定义某一类型的组成成分,将对象类型的组成成分抽象为实体的属性
- 局部的E-R模型设计
- 实体具有描述信息,属性没有
- 属性不能有其他实体具有联系,联系只能发生在实体之间
- 一般情况下,能作为属性对待的,尽量作为属性
- 全局的E-R模型设计
- 视图集成的方法:多元集成法、二元集成法
- 合并:合并局部E-R图,消除局部E-R图之间的冲突
- 属性冲突:属性值域冲突、属性的取值单位冲突
- 命名冲突:同名异义、异名同义
- 结构冲突:
- 同一对象在不同应用中有不同抽象
- 同一实体在不同应用中属性组成不同
- 同一联系在不同应用中程序不同类型
- 优化:消除不必要的冗余,生成基本E-R图
6.3.5 案例的概念结构设计
6.4 逻辑结构设计
6.4.1 任务和步骤
6.4.2 初始关系模式设计
- 转换原则
- 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的主码
- 一个联系转换为一个关系模式,与该联系相连的各实体的主码及其联系的属性均转换为该关系的属性,该关系的码有3种情况
- 如果为1:1,则每个实体的主码都可以是关系的候选码
- 如果为1:n,则N端实体的主码是关系的主码
- 如果联系为n:M,则每个实体的主码的组合是关系的主码
6.4.3 关系模式规范化
- 确定范式级别
- 实施规范化处理
6.4.4 模式评价和改进
- 模式评价
- 功能评价
- 性能评价
- 模式改进
- 合并
- 分解:水平分解,垂直分解
6.5 物理结构设计
6.5.1 确定物理结构
- 存储记录结构的设计
- 数据的基本存取单位是存储记录。某一类型的所有存储记录的集合称为“文件”
- 文件组织和文件结构是组成文件的存储记录的表示法
- 觉得存储结构的主要因素是:存取时间、存储空间和维护代价
- 聚集(Cluster):为了提高查询速度,把一个(或一组)属性上具有相同值的元组集中地存放在一个物理块中,其中这个(或这组)属性称为聚集码。
- 聚集能节省存储空间
- 聚集能大大提高按聚集码查询的效率
- 索引
- 在主码上建立唯一索引,可以提高查询速度,也能避免主码重复值录入
- 建立多个索引可以缩短存取时间,但是增加了空间占用和维护的开销
- 访问方法的设计
- 数据存放位置的设计
- 系统配置的设计
6.6 数据库实施
- 建立实际数据库结构
- 装入数据
- 应用程序编码与调试
- 数据库试运行
- 整理文档
6.7 数据库运行和维护
- 维护数据库的安全性与完整性
- 检测并改善数据库性能
- 重新组织和构造数据库