我们会一起享受苦尽甘来的美好,会熬过这段最苦的日子。
数据库设计概述
数据库生命周期的两个阶段
数据库分析与设计阶段
包含:需求分析、概念设计、逻辑设计和物理设计四个阶段。
数据库实现与操作阶段
包含:数据库的实现、操作与监督、修改与调整工三个子阶段。
设计的目标
目标:满足应用功能的需求和良好的数据库性能。
满足应用功能的需求
指用户当前与可预知的将来应用所需要的数据及其联系,应全部准确地存储在数据库之中,从而可满足用户应用中所需要的对数据进行的存、取、删、改等操作。
良好的数据库性能
主要是指对数据的高效率存取和空间的节省,并具有良好的数据共享性、完整性、一致性及安全保密性。
设计的内容
- 数据库结构设计:是针对给定的应用环境进行数据库的模式或子模式的设计,包括数据库的概念结构设计、逻辑结构设计和物理结构设计。 模式定义并给出各应用程序共享的结构,是静态的,一经形成通常不会改变。
- 数据库行为设计:是确定数据库用户的行为和动作,而用户的行为和动作是对数据库的操作,它们通常是通过应用程序来实现的。 行为设计是动态的。
设计方法
数据库设计方法(有效的指导原则) ,概括分为三类:
- 直观设计法;
- 规范设计法;
- 计算机辅助设计法。
直观设计法
最原始的设计方法。
规范设计法
- 新奥尔良设计方法
- 基于 E-R 模型的数据库设计方法
- 基于第三范式的设计方法
计算机辅助设计法
通常通过人机交互的方式来完成。(例如 CASE 工具)
数据库设计的过程
数据库设计的阶段包括:
- 需求分析阶段;
- 结构设计阶段:包括概念结构设计、逻辑结构设计和物理结构设计;
- 行为设计阶段:包括功能设计、事务设计和程序设计;
- 数据库实施阶段:包括加载数据库数据和调试运行应用程序;
- 数据库运行和维护阶段。
数据库设计过程实际上是一个反复修改、反复设计的迭代过程。如下图所示:
数据库设计的基本步骤
数据库设计的特点是结构设计和行为设计分离。
需求分析
- 需求分析是数据库设计的起点。
- 目标是了解与分析用户的信息及应用处理的要求,并将结果按一定格式整理而形成需求分析报告。
- 该分析报告是后续过程的依据。
- 数据库设计人员进行需求分析的基本方法是听取数据库应用部门工作人员的报告,并与之座谈。
- 需求分析的四个步骤:
(1)即确定数据库范围; (2)分析数据应用过程; (3)收集与分析数据; (4)编写需求分析报告。
确定数据库范围
数据库设计的第一项工作就是要确定数据库范围。 即确定数据库应支持哪些应用功能。
应用过程分析
- 了解并分析数据与数据处理间的关系。
- 应用过程分析的结果是数据库结构设计的重要依据。
- 数据应用过程可以借助数据流图或其他信息及应用结构图形表示。
收集与分析数据
- 任务: 任务是了解并分析数据的组成格式及操作特征,每个数据元素的语义及关系等,并将它们收集起来整理归档。
- 数据流图中所涉及的数据都是收集与分析的对象,主要包括报表、文件、单据及各种原始资料。
- 数据的收集与分析工作可从数据的静态结构、动态结构及数据约束三个方面展开。
-
静态结构:是指不施加应用操作于其上时数据的原始状况,这可通过数据分类表和数据元素表进行说明。 数据分类表用于数据的总体描述。格式如下: 数据元素表指通常意义下的数据项或属性。 格式如下: 在这里插入图片描述 -
动态结构: 是指将应用操作施加于数据之上后数据的状况,可通过任务分类表和数据表操作特征表进行说明。 任务分类表是根据对数据流图的分析,可将业务处理过程划分成不同任务。 任务分类表格式如下: 数据操作特征表用以描述任务和数据之间的关系,它包括不同任务对数据执行不同操作的频率。格式如下: -
数据约束:是指使用数据时的特殊要求。 数据的安全保密性;数据的完整性;响应时间;数据恢复。
编写需求分析报告
作为需求分析的一个总结,数据库设计人员需要编写需求分析报告。
- 需求分析报告的内容:
- 数据库的应用功能目标;
- 标明不同用户视图范围;
- 应用处理过程需求说明包括:数据流程图;任务分类表;数据操作特征表;操作过程说明书。
- 数据字典
是数据库系统中存储三级结构定义的数据库,通常指的是数据库系统中各类数据详细描述的集合。 数据字典通常包括:数据分类表、数据元素表和各类原始资料。 - 数据量
根据数据分类表中的静态数据量和操作特征表中的动态数据量,进行统计计算,求出数据总量。 6 .数据约束 包括以下几个方面:
- 数据的安全保密性;
- 数据的完整性;
- 响应时间;
- 数据恢复。
概念结构设计
- 概念结构设计的任务是需求分析中产生的需求分析报告的基础上,按照特定的方法设计满足应用需求的用户信息结构,该信息结构通常称为概念模型。
- 概念结构设计的常用方法有实体分析法和属性综合法两种,它们也分别称为自顶向下法和自底向上法。
逻辑结构的设计
- 逻辑结构设计的目标是将概念模型转换为等价的、并为特定 DBMS 所支持数据模型的结构。
- 数据库逻辑模型一般由层次、网状、关系数据模型表示。
- 逻辑结构设计的输入信息包括:
- 独立于特定 DBMS 的概念模型
- 有关响应时间、安全保密性、数据完整性及恢复方面的要求说明,包括保持数据一致性的规则说明。
- 数据量及使用频率。
- 特定 DBMS 特性,包括 DBMS 支持的数据模型及数据定义语言的说明。
- 逻辑结构设计的输出信息包括:
- 一个特定 DBMS 支持的概念模式,或称之为模式。
- 一个或多个外部视图, 或称之为子模式。
- 物理设计说明,其主要包括存入数据库中的数据量、使用频率及响应时间要求。
- 程序设计说明。
- 逻辑结构设计的步骤:
- 模型转换是指将概念模型等价地转换为特定 DBMS 支持的关系模型、网状模型或层次模型表示。
- 子模式设计的目标是抽取或导出模式的子集,以构造不同用户使用的局部数据逻辑结构。
- 编制应用程序设计说明的目的是为可实际运行的应用程序设计提供依据与指导,并作为设计评价的基础。
- 设计评价的任务是分析并检验模式及子模式的正确性与合理性。
物理设计
物理设计是指对于一个给定的数据库逻辑结构,研究并构造物理结构的过程,其具体任务主要是确定数据库在存储设备上的存储结构及存取方法,因 DBMS的不同还可能包括建立索引和聚集,以及物理块大小、缓冲区个数和大小、数据压缩的选择等。
数据库的实施
工作内容:
数据库运行和维护
系统维护中最困难的工作是数据库重组与重构。
关系数据库设计方法
关系数据库的概念结构设计与逻辑结构设计是关系数据库整个设计过程的关键。
关系数据库设计过程与各级模式
- 在概念结构设计阶段,形成独立于机器特点、独立于各个关系数据库管理系统产品的概念模式;
- 在逻辑结构设计阶段,将 E-R 图转换成具体的数据库产品支持的关系数据模型,形成数据库逻辑模式, 然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式;
- 在物理结构的设计阶段,根据关系数据库管理系统的特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。 如下图所示:
概念结构设计方法
关系数据库的概念结构设计通常采用自顶向下法,它通过两个步骤来完成概念设计,首先建立局部信息结构,然后将局部信息结构合成为全局信息结构并优 化,使用 E-R 图作为概念模型的描述工具。
E-R 图的表示方法
E-R 图提供了表示信息世界中实体、属性和联系的方法。
- 实体型,用矩形表示,写明实体的名称;
- 属性,用椭圆形表示,并用无向边将其与其相应的实体连接起来。
- 联系,用菱形表示,写明联系的名称,用无向边分别与有关实体连接起来,
- 同时在无向边旁标注联系的类型(1:1、 1:N 或 M:N) ,如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
- 两个实体型之间、两个以上的实体型之间以及单个实体型内的联系,都会存在如下关系:
一对一联系(1:1) 一对多联系(1:N) 多对多联系(M:N)
什么是局部信息结构?
根据需求分析报告中标明的不同用户视图范围所建立的满足该范围内用户需求的信息结构,称为局部信息结构。
局部信息结构的设计步骤
局部信息结构设计的步骤包括:
- 确定局部范围;
- 选择实体;
- 选择实体关键字;
- 确定实体间联系;
- 确定实体的属性。
什么是全局信息结构设计?
全局信息结构设计是将上述步骤中产生的所有局部信息结构合并成为一个全局信息结构。
各局部 E-R 图之间的冲突主要表现在三个方面:
- 属性冲突:属性域冲突和属性取值单位冲突。
- 命名冲突:同名异义和异名同义。
- 结构冲突:三类冲突:1)同一对象在一个局部 E-R 图中作为实体,而在另一个局部 E-R 图中作为属性;2)同一实体在不同的 E-R 图中属性个数和类型不同;3)实体之间的联系在不同的 E-R 图中是不同的类型。
逻辑结构设计
- 任务: 把在概念结构设计产生的概念模型转换为具体的 DBMS 所支持的逻辑数据模型,也就是导出特定的 DBMS 可以处理的数据库逻辑结构。
- 三项工作: 1)将 E-R 图转换为关系模型;2)对关系数据模型进行优化;3)设计面向用户的外模式。
E-R 图向关系模型的转换
遵循规则:
- 一个实体型转换为一个关系模式。
- 一个一对一联系可以转换为一个独立的关系模式。
- 一个一对多联系可以转换为一个关系模式。
- 一个多对多联系转换为一个关系模式。
- 三个多对多联系转换为一个关系模式。
- 具有相同码的关系模式可合并。
数据模型的优化方法
- 确定各属性间的函数依赖关系。
- 对于各个关系模式的范式,根据实际需要确定最合适的范式。
- 判断每个关系模式的范式,根据实际需要确定最合适的范式。
- 按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解。
- 对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。
设计用户子模式
- 可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用。
- 可以对不同级别的用户定义不同的视图,以保证系统的安全性。
- 简化用户对系统的使用。
物理设计方法
- 优点之一是用户通常不需要进行数据存储结构和存取方法的设计。
- 任务主要是通过对关系建立索引和聚集来实现与应用相关数据的逻辑连接和物理聚集,以改善对数据库的存取效率。
建立索引的方式
静态建立索引是指应用人员预先建立索引,一旦建立,后续的应用程序均可直接使用该索引存取数据,它多适合于用户较多且使用周期相对较长的数据; 动态建立索引是指应用人员在程序内外临时建立索引,它多适合于单独用户或临时性使用要求情况。
什么是聚集?
聚集是将相关数据集中存放的物理存储技术,借以提高 I/O 的数据命中率而改善存取速度,其功能由具体的 DBMS 所提供,如 MySQL。
|