一.数据库设计概述
1.数据库设计
a.数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
b.信息管理要求:在数据库中应该存储和管理哪些数据对象 。
c.数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。
数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境 。
高效率的运行环境
2.数据库设计方法
(1)大型数据库设计是涉及多学科的综合性技术,又是一项庞大的工程项目。
(2)它要求多方面的知识和技术。主要包括:
计算机的基础知识
软件工程的原理和方法
程序设计的方法和技巧
数据库的基本知识
数据库设计技术
应用领域的知识
3.数据库设计的基本步骤
(1)数据库设计分6个阶段
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
4.数据库设计过程中的各级模式
二.需求分析
1.需求分析的任务:
需求分析就是分析用户的要求
是设计数据库的起点
结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用
调查的重点是“数据”和“处理”,获得用户对数据库的要求
(1)信息要求
(2)处理要求
(3)安全性与完整性要求
确定用户最终需求的难点
解决方法
2.需求分析的方法
分析方法
结构化分析方法(Structured Analysis,简称SA方法)
对用户需求进行分析与表达后,需求分析报告必须提交给用户,征得用户的认可
3.数据字典
(1)数据字典是关于数据库中数据的描述,即元数据,不是数据本身
(2)数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善
(3)数据字典是进行详细的数据收集和数据分析所获得的主要结果
(4)数据字典的内容
数据项
数据结构
数据流
数据存储
处理过程
(5)数据项是数据的最小组成单位
(6)若干个数据项可以组成一个数据结构
(7)数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容
三.概念结构设计
1.概念模型
将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计
概念模型的特点
(1)能真实、充分地反映现实世界,是现实世界的一个真
实模型。
(2)易于理解,从而可以用它和不熟悉计算机的用户交换
意见。
(3)易于更改,当应用环境和应用要求改变时,容易对概
念模型修改和扩充。
(4)易于向关系、网状、层次等各种数据模型转换
描述概念模型的工具:E-R模型
2.E-R模型
(1)两个实体型之间的联系:
①一对一联系(1∶1)
②一对多联系(1∶n)
③多对多联系(m∶n)
(2)两个以上的实体型之间的联系
(3)单个实体型内的联系
3. E-R图
E-R图提供了表示实体型、属性和联系的方法:
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1∶1,1∶n或m∶n)。
联系可以具有属性
四.概念结构设计
1. 实体与属性的划分原则
为了简化E-R图的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。
两条准则:
(1)作为属性,不能再具有需要描述的性质。属性必须是不可分的数据项,不能包含其他属性。
(2)属性不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。
2. E-R图的集成
E-R图的集成一般需要分两步
合并。解决各分E-R图之间的冲突,将分E-R图合并起来生成初步E-R图。
修改和重构。消除不必要的冗余,生成基本E-R图。
(1)合并E-R图,生成初步E-R图
(2)消除不必要的冗余,设计基本E-R图
例如:
用规范化理论来消除冗余
①确定分E-R图实体之间的数据依赖。
实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。于是有函数依赖集FL。
五.逻辑结构设计
逻辑结构设计的任务
把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构
1.E-R图向关系模型的转换
转换内容
a.E-R图由实体型、实体的属性和实体型之间的联系三个要素组成
b.关系模型的逻辑结构是一组关系模式的集合
c.将E-R图转换为关系模型:将实体型、实体的属性和实体型之间的联系转化为关系模式
2.转换原则
a. 一个实体型转换为一个关系模式。
b.实体型间的联系有以下不同情况
(1) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
(3)一个m:n联系转换为一个关系模式
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。
(5)具有相同码的关系模式可合并
3.数据模型的优化
一般的数据模型还需要向特定数据库管理系统规定的模型进行转换。
转换的主要依据是所选用的数据库管理系统的功能及限制。没有通用规则。
对于关系模型来说,这种转换通常都比较简单。
数据库逻辑设计的结果不是唯一的。
得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化。
关系数据模型的优化通常以规范化理论为指导。
4.优化数据模型的方法:
(1)确定数据依赖
(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
(3)按照数据依赖的理论对关系模式进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
(4)按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。
(5)对关系模式进行必要分解,提高数据操作效率和存储空间的利用率。
5.设计用户子模式
定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。
定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:
(1)使用更符合用户习惯的别名
(2)针对不同级别的用户定义不同的视图,以保证系统的安全性。
(3)简化用户对系统的使用
六.物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
1.数据库物理设计的步骤
a.确定数据库的物理结构
b.对物理结构进行评价
c.若 评价结果满足原设计要求,则可进入到物理实施
阶段。否则,就需要重新设计或修改物理结构,有时
甚至要返回逻辑设计阶段修改数据模型。
2.数据库物理设计的内容和方法
选择物理数据库设计所需参数
数据库查询事务
数据更新事务
每个事务在各关系上运行的频率和性能要求
3.关系模式存取方法选择
数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。
物理结构设计的任务之一是根据关系数据库管理系统支持的存取方法确定选择哪些存取方法。
数据库管理系统常用存取方法
1. B+树索引存取方法
2. Hash索引存取方法
3. 聚簇存取方法
4.选择索引存取方法的一般规则
a.如果一个(或一组)属性经常在查询条件中出现,
则考虑在这个(或这组)属性上建立索引(或组合
索引)
b.如果一个属性经常作为最大值和最小值等聚集函数
的参数,则考虑在这个属性上建立索引
c.如果一个(或一组)属性经常在连接操作的连接条
件中 出现,则考虑在这个(或这组)属性上建立索
引
5.什么是聚簇
为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块中称为聚簇。
该属性(或属性组)称为聚簇码(cluster key)
许多关系型数据库管理系统都提供了聚簇功能
聚簇存放与聚簇索引的区别
6.聚簇的局限性
聚簇只能提高某些特定应用的性能
建立与维护聚簇的开销相当大
对已有关系建立聚簇,将导致关系中元组的物理存储位置移动,并使此关系上原有的索引无效,必须重建。
当一个元组的聚簇码改变时,该元组的存储位置也要做相应改变。
7.聚簇的适用范围
既适用于单个关系独立聚簇,也适用于多个关系组合聚簇
当通过聚簇码进行访问或连接是该关系的主要应用,与聚
簇码无关的其他访问很少或者是次要的时,可以使用聚簇
8.确定数据库的存储结构
(1)确定数据库物理结构主要指确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
(2)确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价3个方面的因素。
(3)影响数据存放位置和存储结构的因素
硬件环境
应用需求
(4)基本原则
根据应用情况将
易变部分与稳定部分分开存放
经常存取部分与存取频率较低部分分开存放
9.评价物理结构
对数据库物理设计过程中产生的多种方案进行评价,从中选择一个较优的方案作为数据库的物理结构。
评价方法:
定量估算各种方案
存储空间
存取时间
维护代价
对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。
十.数据库的实施和维护
1.数据的载入和应用程序的调试
a.数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。
b.数据装载方法
人工方法
计算机辅助数据入库
c.数据库应用程序的设计应该与数据设计并行进行
d.在组织数据入库的同时还要调试应用程序
2.数据库的试运行
a,应用程序调试完成,并且已有一小部分数据入库后,就可以开始对数据库系统进行联合调试,也称数据库的试运行。
b.主要工作包括:
功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。
性能测试:测量系统的性能指标,分析是否符合设计目标。
c.数据库性能指标的测量
数据库物理设计阶段在评价数据库结构估算时间、空间指标时,作了许多简化和假设,忽略了许多次要因素,因此结果必然很粗糙。
数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。
d.数据的分期入库
重新设计物理结构甚至逻辑结构,会导致数据重新入库
由于数据入库工作量实在太大,所以可以采用分期输入数据的方法
e.数据库的转储和恢复
在数据库试运行阶段,系统还不稳定,硬、软件故障随时都可能发生
系统的操作人员对新系统还不熟悉,误操作也不可避免
因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏
3.数据库的运行和维护
在数据库运行阶段,对数据库经常性的维护工作主要是由数据库管理员完成的,包括:
a.. 数据库的转储和恢复
b.数据库的安全性、完整性控制
c.数据库性能的监督、分析和改进
d.数据库的重组织与重构造
4.数据库的重构造
数据库重构造的主要工作
a.根据新环境调整数据库的模式和内模式
增加或删除某些数据项
改变数据项的类型
增加或删除某个表
改变数据库的容量
增加或删除某些索引
b.重构造数据库的程度是有限的