E—R模型:
1. 实体之间的联系
(1)两个实体型之间的联系:
①一对一联系(1∶1)
②一对多联系(1∶n)
③多对多联系(m∶n)
(2)两个以上的实体型之间的联系
l 一般地,两个以上的实体型之间也存在着一对一、一对多、多对多联系。
(3)单个实体型内的联系
l 同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。
E-R图:
nE-R图提供了表示实体型、属性和联系的方法:
l实体型:用矩形表示,矩形框内写明实体名。
l属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
l联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来
l联系可以具有属性
概念结构设计
设计
1. 实体与属性的划分原则
n为了简化E-R图的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。
n两条准则:
(1)作为属性,不能再具有需要描述的性质。属性必须是不可分的数据项,不能包含其他属性。
(2)属性不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。
2. E-R图的集成
nE-R图的集成一般需要分两步
l 合并。解决各分E-R图之间的冲突,将分E-R图合并起来生成初步E-R图。
l 修改和重构。消除不必要的冗余,生成基本E-R图。
(1)合并E-R图,生成初步E-R图
l各个局部应用所面向的问题不同,各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。
l子系统E-R图之间的冲突主要有三类:
①属性冲突
②命名冲突
③结构冲突
(2)消除不必要的冗余,设计基本E-R图
l所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。
l消除冗余主要采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
7.4逻辑结构设计
1E—R图向关系模式的转换
v转换内容
nE-R图由实体型、实体的属性和实体型之间的联系三个要素组成
n关系模型的逻辑结构是一组关系模式的集合
n将E-R图转换为关系模型:将实体型、实体的属性和实体型之间的联系转化为关系模式
转换原则
1. 一个实体型转换为一个关系模式。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
一个m:n联系转换为一个关系模式
三个或三个以上实体间的一个多元联系转换为一个关系模式。
具有相同码的关系模式可合并
7.4.2数据模型的优化
v一般的数据模型还需要向特定数据库管理系统规定的模型进行转换。
v转换的主要依据是所选用的数据库管理系统的功能及限制。没有通用规则。
v对于关系模型来说,这种转换通常都比较简单。
优化数据模型的方法:
(1)确定数据依赖
n按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。
(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
(3)按照数据依赖的理论对关系模式进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
(4)按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。
(5)对关系模式进行必要分解,提高数据操作效率和存储空间的利用率。
n水平分解
l什么是水平分解
Ø把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率。
l如何分解
ü对符合80/20的,把经常被使用的数据(约20%)
水平分解出来,形成一个子关系。
ü水平分解为若干子关系,使每个事务存取的数据对应一个子关系。
n垂直分解
l什么是垂直分解
Ø把关系模式R的属性分解为若干子集合,形成若干子关系模式。
l垂直分解的原则
Ø经常在一起使用的属性从R中分解出来形成一个子关系模式
l垂直分解的优点
Ø可以提高某些事务的效率
l垂直分解的缺点
Ø可能使另一些事务不得不执行连接操作,降低了效率
7.5物理结构
n数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
v数据库物理设计的步骤
n 确定数据库的物理结构
l在关系数据库中主要指存取方法和存储结构;
n 对物理结构进行评价
l评价的重点是时间和空间效率
n 若 评价结果满足原设计要求,则可进入到物理实施
阶段。否则,就需要重新设计或修改物理结构,有时
甚至要返回逻辑设计阶段修改数据模型。
数据库物理设计的内容和方法
v选择物理数据库设计所需参数
n 数据库查询事务
l查询的关系
l查询条件所涉及的属性
l连接条件所涉及的属性
l查询的投影属性
n数据更新事务
l被更新的关系
l每个关系上的更新操作条件所涉及的属性
l修改操作要改变的属性值
n 每个事务在各关系上运行的频率和性能要求
v数据库管理系统常用存取方法
1. B+树索引存取方法
2. Hash索引存取方法
3. 聚簇存取方法
选择索引存取方法的一般规则
如果一个(或一组)属性经常在查询条件中出现,
则考虑在这个(或这组)属性上建立索引(或组合
索引)
如果一个属性经常作为最大值和最小值等聚集函数
的参数,则考虑在这个属性上建立索引
如果一个(或一组)属性经常在连接操作的连接条
件中 出现,则考虑在这个(或这组)属性上建立索
引
选择Hash存取方法的规则
如果一个关系的属性主要出现在等值连接条件中或主要出现在等值比较选择条件中,而且满足下列两个条件之一
该关系的大小可预知,而且不变;
该关系的大小动态改变,但所选用的数据库管理系统提供了动态Hash存取方法。
聚簇索引
建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中元组的物理顺序一致。
在一个基本表上最多只能建立一个聚簇索引
设计候选聚簇
(1)常在一起进行连接操作的关系可以建立组合聚簇
(2)如果一个关系的一组属性经常出现在相等比较条
件中,则该单个关系可建立聚簇;
(3)如果一个关系的一个(或一组)属性上的值重复
率很高,则此单个关系可建立聚簇。
确定数据存放位置
基本原则
根据应用情况将
l易变部分与稳定部分分开存放
l经常存取部分与存取频率较低部分分开存放
7.6数据库的实施与维护
应用程序调试完成,并且已有一小部分数据入库后,就可以开始对数据库系统进行联合调试,也称数据库的试运行。
主要工作包括:
功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。
性能测试:测量系统的性能指标,分析是否符合设计目标。
v在数据库运行阶段,对数据库经常性的维护工作主要是由数据库管理员完成的,包括:
1. 数据库的转储和恢复
2. 数据库的安全性、完整性控制
3. 数据库性能的监督、分析和改进
4. 数据库的重组织与重构造