2018-11-2 转载请注明出处
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
信息管理要求:在数据库中应该存储和管理哪些数据对象 。
数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。
数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境 。
高效率的运行环境:
数据库数据的存取效率高
数据库存储空间的利用率高
数据库系统运行管理的效率高
规范设计法:手工设计方法
基本思想:过程迭代和逐步求精
典型方法:
新奥尔良(New Orleans)方法
基于E-R模型的数据库设计方法
3NF(第三范式)的设计方法
面向对象的数据库设计方法
统一建模语言(UML)方法
数据库设计分6个阶段:
1、需求分析:综合各个用户的应用需求,同时要充分考虑今后可能的扩充和改变
2、概念结构设计:形成独立于机器特点,独立于各个数据库管理系统产品的概念模式(E-R图)
3、逻辑结构设计:
① 首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,
形成数据库逻辑模式
② 然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立
必要的视图(View),形成数据的外模式
4、物理结构设计:根据数据库管理系统特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式
5、数据库实施
6、数据库运行和维护
注意:1和2阶段独立于任何数据库管理系统,3和4阶段与选用的数据库管理系统密切相关。
概念结构设计
E-R模型
两个实体类型之间的三类联系1:1联系、1:n联系、m:n联系。
图(1)
联系的度:参与联系的实体型的数目
2个实体型之间的联系度为2,也称为二元联系;
3个实体型之间的联系度为3,称为三元联系;
N个实体型之间的联系度为N,也称为N元联系
E-R图提供了表示实体型、属性和联系的方法:
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
图(2)
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1∶1,1∶n或m∶n)。
联系可以具有属性
E-R图合并可能会有冲突,主要有三类:属性冲突、命名冲突、结构冲突。另外需要消除冗余,所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。而消除冗余主要采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
逻辑结构设计
把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。将实体型、实体的属性和实体型之间的联系转化为关系模式,转换原则:一个实体型转换为一个关系模式。
实体型间的联系有以下不同情况:
(1) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
① 转换为一个独立的关系模式
关系的属性:与该联系相连的各实体的码以及联系本身的属性
关系的候选码:每个实体的码均是该关系的候选码
②与某一端实体对应的关系模式合并
合并后关系的属性:加入对应关系的码和联系本身的属性
合并后关系的码:不变
(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
①转换为一个独立的关系模式
关系的属性:与该联系相连的各实体的码以及联系本身的属性
关系的码:n端实体的码
②与n端对应的关系模式合并
合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属性
合并后关系的码:不变
可以减少系统中的关系个数,一般情况下更倾向于采用这种方法
(3)一个m:n联系转换为一个关系模式
关系的属性:与该联系相连的各实体的码以及联系本身的属性
关系的码:各实体码的组合
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。
关系的属性:与该多元联系相连的各实体的码以及联系本身的属性
关系的码:各实体码的组合
(5)具有相同码的关系模式可合并
目的:减少系统中的关系个数
合并方法:
将其中一个关系模式的全部属性加入到另一个关系模式中
然后去掉其中的同义属性(可能同名也可能不同名)
适当调整属性的次序
优化数据模型的方法:
(1)确定数据依赖
按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。
(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
(3)按照数据依赖的理论对关系模式进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
(4)按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。
但并不是规范化程度越高的关系就越优,当查询经常涉及两个或多个关系模式的属性时,系统必须经常地进行连接运算。而连接运算的代价是相当高的,因此在这种情况下第二范式甚至第一范式也许是适合的。
比如非BCNF的关系模式虽然会存在不同程度的更新异常,但如果在实际应用中对此关系模式只是查询,并不执行更新操作,就不会产生实际影响。对于一个具体应用来说,到底规范化进行到什么程度,需要权衡响应时间和潜在问题两者的利弊才能决定。
5)对关系模式进行必要分解,提高数据操作效率和存储空间的利用率。
常用分解方法:
分解方式:对符合80/20的,把经常被使用的数据(约20%)水平分解出来,形成一个子关系。水平分解为若干子关系,使每个事务存取的数据对应一个子关系。
分解原则:经常在一起使用的属性从R中分解出来形成一个子关系模式
优点:可以提高某些事务的效率
缺点:可能使另一些事务不得不执行连接操作,降低了效率
适用范围:取决于分解后R上的所有事务的总效率是否得到了提高
分解方法:简单情况:直观分解。复杂情况:用第6章中的模式分解算法
垂直分解必须不损失关系模式的语义(保持无损连接性和保持函数依赖)
设计用户子模式:
定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。
定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:
1)使用更符合用户习惯的别名合并各分E-R图曾做了消除命名冲突的工作,以使数据库系统中同一关系和属性具有唯一的名字。这在设计数据库整体结构时是非常必要的。用视图机制可以在设计用户视图时可以重新定义某些属性名,使其与用户习惯一致,以方便使用。
2)针对不同级别的用户定义不同的视图,以保证系统的安全性。
3)简化用户对系统的使用,如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图。
物理结构设计
定义:数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
设计步骤:
在关系数据库中主要指存取方法和存储结构;
评价的重点是时间和空间效率
如果评价结果满足原设计要求,则可进入到物理实施阶段。否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
物理结构设计的内容和方法:
内容:为关系模式选择存取方法(建立存取路径),设计关系、索引等数据库文件的物理存储结构。
存取方法选择:数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。常用的存取方法:B+树索引存取方法、Hash索引存取方法、聚簇存取方法。
确定存储结构:确定数据库物理结构主要指确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。而确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价3个方面的因素。
确定存放位置遵循的原则:易变部分与稳定部分分开存放,经常存取部分与存取频率较低部分分开存放。
数据库的实施和维护
数据库实施阶段最主要的工作是组织数据入库,有人工装载和计算机辅助数据入库。在数据入库的同时要调试应用程序。
调试完成可进入试运行,进行功能测试和性能测试。
在运行阶段,对数据库经常性的维护工作主要由数据库管理员完成,包括:数据转储和恢复、数据库的安全性和完整性的控制、数据库性能的监督分析和改进、数据库的重组织和重构造。
总结
数据库各级模式的形成
需求分析阶段:综合各个用户的应用需求(现实世界的需求)。
概念设计阶段:概念模式(信息世界模型),用E-R图来描述。
逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型如关系模型(逻辑模式)、根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(外模式)。
物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引(内模式)。