7.1 数据库设计概述
(1)定义:数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求。
用户的应用需求,包括信息管理要求和数据操作要求。
信息管理要求:在数据库中应该存储和管理哪些数据对象 。
数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作
(2)目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境:数据库数据的存取效率高
数据库存储空间的利用率高
数据库系统运行管理的效率高
7.1.1 数据库设计的特点
结构和行为分离的设计
现实世界 |
概念模型设计 |
子模式设计 |
物理数据库设计 |
逻辑数据库设计 |
建立数据库 |
数据分析 |
功能分析 |
功能模型 |
功能说明 |
事务设计 |
应用设计 |
应用开发 |
系统调试 |
7.1.2 数据库设计方法
规范设计法:手工设计方法
基本思想:过程迭代和逐步求精
典型方法:新奥尔良(New Orleans)方法
基于E-R模型的数据库设计方法
3NF(第三范式)的设计方法
面向对象的数据库设计方法
统一建模语言(UML)方法
7.1.3 数据库设计的基本步骤
数据库设计分6个阶段:
需求分析和概念设计独立于任何数据库管理系统
逻辑设计和物理设计与选用的数据库管理系统密切相关
7.1.4 数据库设计过程中的各级模式
需求分析阶段:综合各个用户的应用需求
概念设计阶段:形成独立于机器特点,独立于各个数据库管理系统产品的概念模式(E-R图)
逻辑设计阶段:1. 首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式
2. 然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式
物理设计阶段:根据数据库管理系统特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式
7.2 需求分析
7.2.1 需求分析的任务
需求分析就是分析用户的要求
--是设计数据库的起点
--结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用
--详细调查现实世界要处理的对象(组织、部门、企业等)
--充分了解原系统(手工系统或计算机系统)工作概况
--明确用户的各种需求
--在此基础上确定新系统的功能
--新系统必须充分考虑今后可能的扩充和改变
--调查的重点是“数据”和“处理”,获得用户对数据库的要求
(1)信息要求
用户需要从数据库中获得信息的内容与性质
由信息要求可以导出数据要求,即在数据库中需要存储哪些数据
(2)处理要求:用户要完成的处理功能
对处理性能的要求
(3)安全性与完整性要求
------确定用户最终需求的难点
1.用户缺少计算机知识,不能准确地表达自己的需求,他们所提出的需求往往不断地变化。
2.设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求
--解决方法:设计人员必须不断深入地与用户进行交流,才能逐步确定用户的实际需求
7.2.2 需求分析的方法
结构化分析方法(Structured Analysis,简称SA方法)
SA方法从最上层的系统组织机构入手
采用自顶向下、逐层分解的方式分析系统
7.2.3 数据字典
数据字典是关于数据库中数据的描述,即元数据,不是数据本身
数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善
数据字典是进行详细的数据收集和数据分析所获得的主要结果
----数据字典的内容
数据项:数据项是数据的最小组成单位
数据结构: 若干个数据项可以组成一个数据结构
数据流
数据存储
处理过程
数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容
7.3 概念结构设计
7.3.1 概念模型
1.定义:将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计
2.特点
(1)能真实、充分地反映现实世界,是现实世界的一个真实模型。
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见。
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
- 易于向关系、网状、层次等各种数据模型转换
3.描述概念模型的工具:E-R模型
7.3.2 E-R模型
两个实体型之间的三类联系
三个实体型之间的联系示例
单个实体型内的一对多联系示例
2. E-R图
E-R图提供了表示实体型、属性和联系的方法:
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1∶1,1∶n或m∶n)。
联系可以具有属性
7.3.5 概念结构设计
1. 实体与属性的划分原则
为了简化E-R图的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。
---两条准则:
(1)作为属性,不能再具有需要描述的性质。属性必须是不可分的数据项,不能包含其他属性。
(2)属性不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。
2. E-R图的集成
E-R图的集成一般需要分两步
--合并。解决各分E-R图之间的冲突,将分E-R图合并起来生成初步E-R图。
--修改和重构。消除不必要的冗余,生成基本E-R图。
7.4 逻辑结构设计
把概念结构设计阶段设计好的基本E-R图转换为与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构
7.4.1 E-R图向关系模型的转换
将E-R图转换为关系模型:将实体型、实体的属性和实体型之间的联系转化为关系模式
转换原则
- 一个实体型转换为一个关系模式
2. 实体型间的联系有以下不同情况
(1) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
(3)一个m:n联系转换为一个关系模式
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式
(5)具有相同码的关系模式可合并
7.4.2 数据模型的优化
优化数据模型的方法:
- 确定数据依赖:按需求分析阶段所得到的语义,分别写出每个
关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。
(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
(3)按照数据依赖的理论对关系模式进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。
(4)按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。
(5)对关系模式进行必要分解,提高数据操作效率和存储空间的利用率
7.4.3 设计用户子模式
定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发
定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:
(1)使用更符合用户习惯的别名
(2)针对不同级别的用户定义不同的视图,以保证系统的安全性。
(3)简化用户对系统的使用
7.5 物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统
数据库物理设计的步骤:
--确定数据库的物理结构
--对物理结构进行评价
--若评价结果满足原设计要求,则可进入到物理实施
阶段。否则,就需要重新设计或修改物理结构,有时
甚至要返回逻辑设计阶段修改数据模型
7.5.1 数据库物理设计的内容和方法
--设计物理数据库结构的准备工作
--选择物理数据库设计所需参数
--关系数据库物理设计的内容
为关系模式选择存取方法(建立存取路径)
设计关系、索引等数据库文件的物理存储结构
7.5.2 关系模式存取方法选择
数据库管理系统常用存取方法
1. B+树索引存取方法
2. Hash索引存取方法
3. 聚簇存取方法
7.5.3 确定数据库的存储结构
---确定数据库物理结构主要指确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
---确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价3个方面的因素
7.5.4 评价物理结构
对数据库物理设计过程中产生的多种方案进行评价,从中选择一个较优的方案作为数据库的物理结构。
评价方法
定量估算各种方案:存储空间
存取时间
维护代价
对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。
7.6 数据库的实施和维护
7.6.1 数据的载入和应用程序的调试
数据装载方法:人工方法
计算机辅助数据入库
7.6.2 数据库的试运行
---功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。
---性能测试:测量系统的性能指标,分析是否符合设计目标。
7.6.3 数据库的运行和维护
1. 数据库的转储和恢复
2. 数据库的安全性、完整性控制
3. 数据库性能的监督、分析和改进
4. 数据库的重组织与重构造