数据库(四)—— 数据库设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Alexshi5/article/details/81429791

一、数据库设计概述

1、数据库的生命周期

数据库的生命周期可分为两个阶段,分别是数据库分析与设计阶段、数据库实现与操作阶段。

⑴ 数据库分析与设计阶段:需求分析、概念设计、逻辑设计、物理设计;

⑵ 数据库实现与操作阶段:实现、操作与监督、修改与调整;

2、数据库设计的目标

数据库设计的两个重要目标,分别是满足应用功能需求和良好的数据库性能。

⑴ 应用功能需求:是指用户当前与可预知的将来应用所需要的数据及其联系,应全部准确的存储在数据库之中,从而可满足用户应用中所需要的对数据进行的增、删、查、改等操作;

⑵ 良好的数据库性能:是指对数据的高效率存储和空间的节省,并具有良好的数据共享性、完整性、一致性以及安全保密性。

3、数据库设计的内容

数据库设计是从用户对数据的需求出发,研究并构造数据库的过程,其中包含两个方面的内容:

⑴ 数据库结构设计:它是针对给定的应用环境进行数据库的模式或子模式的设计,包括数据库的概念结构设计、逻辑结构设计和物理结构设计。模式定义并给出各应用程序共享的结构,是静态的,一旦形成通常不会改变;

⑵ 数据库行为设计:它是确定数据库用户的行为和动作,而用户的行为和动作是对数据库的操作,它们通常是通过应用程序来实现的。由于用户的行为会使数据库的内容发生变化,所以行为设计是动态的。

4、数据库设计的方法

数据库设计方法可分为三类,分别是直观设计法、规范设计法和计算机辅助设计法。

⑴ 直观设计法

        它是一种原始的数据库设计方法,它利用设计者的经验和技巧来设计数据库的模式。由于缺乏科学理论的指导,设计的质量很难保证。

⑵ 规范设计法

常见的规范设计法有以下几下:

① 新奥尔良设计方法

         这种方法将数据库设计分为四个阶段,分别是需求分析、概念结构设计、逻辑结构设计和物理结构设计,它注重数据库的结构设计,而不太考虑数据库的行为设计。

② 基于E-R模型图的数据库设计方法

        它的基本思想是在需求分析的基础上用E-R图构造一个反映现实世界实体之间联系的企业模式,然后将此模式转换成某一特定DBMS下的概念模式。

③ 基于第三范式的设计方法

         它是一种结构设计方法,其思想是在需求分析的基础上首先确定数据库的模式、属性及属性之间的依赖关系,然后将它们组织在一个单一的关系模式中,再分析关系模式中不符合第三范式的约束条件,进行模式分解,规范成若干个第三范式模式的集合。

⑶ 计算机辅助设计法

        它是指在数据库设计过程中,以领域专家的知识或经验为主导,模拟某一规范化设计的方法,通过人机交互的方式来完成设计的某些过程。

5、数据库设计的过程

 数据库设计分为以下几个阶段:

⑴ 需求分析阶段;

⑵ 结构设计阶段,包括概念结构设计、逻辑结构设计和物理结构设计;

⑶ 行为设计阶段,包括功能设计、事务设计和程序设计;

⑷ 数据库实施阶段,包括加载数据库数据和调试运行应用程序;

⑸ 数据库运行和维护阶段。

二、数据库设计的基本步骤

1、需求分析

需求分析一般分为四个步骤,分别是确定数据库范围、分析数据应用过程、收集与分析数据和编写需求分析报告。

⑴ 确定数据库范围

        它是指确定数据库应支持哪些应用功能,该范围应尽可能的考虑较广泛的应用部门或应用领域,充分满足用户的应用功能需求。同时,还应尽可能的考虑将来的应用需求,以提高数据库的应变能力。

⑵ 应用分析过程

        它是指了解并分析数据与数据处理之间的关系。在确定数据库范围之后,数据库设计人员应逐步了解和分析每一个功能要用到哪些数据、数据使用的顺序、对数据的处理策略以及数据处理的结果等。

        数据应用过程可以借助数据流程图或应用结构图表示,在构造数据流程图时,应以局部应用部门或相对独立的应用功能为标识单位,从而将问题局部化,有利于分块设计。

⑶ 收集与分析数据

        它的任务是了解并分析数据的组成格式及操作特征,每个数据元素的语义及关系等,并将它们收集起来整理归档。数据流程图中所涉及的数据都是收集与分析的对象,主要包括报表、文件、单据以及各种原始资料。

        数据的收集与分析可从数据的静态结构、动态结构及数据结束三个方面展开:

① 静态结构

        是指不施加应用操作于其上时数据的原始状况,这可以通过数据分类表和数据元素表进行说明。

a. 数据分类表:用于数据的总体描述。对于每一客观存在的具有独立意义的单类数据单位(如报表、文件、收据等)应给出说明 

数据分类表
数据分类ID 数据名 用途 主人 用户 来源 去向 存档时间 数据量
顺序编号 原始数据类名称 数据的使用价值 本类数据的生成者 本类数据的使用者 本类数据的数据源 数据形成后的去向 数据保存的时间 本类数据在静态下的记录个数

 

 

 

b. 数据元素表:指通常意义下的数据项或属性。对每一类数据的所有数据元素应给出详细的说明。

数据元素表
数据元素ID 数据分类ID 元素名 意义 类型 长度 算法 备注
顺序编号 数据分类表中的主键ID 原始名称 在实际业务中表示的含义 描述元素的数据特征 数据元素的符号个数 描述每一数据元素的计算公式  

 

② 动态结构

        是指将应用操作施加于数据之上后的数据状况,可通过任务分类表和数据操作特征表进行说明。数据的动态结构对于分析数据的共享性、时间响应要求和数据的操作权限具有重要价值,它是概念设计和物理设计的重要依据。

a. 任务分类表:根据对数据流程图的分析,可将业务处理过程划分成不同任务。通常,一个任务是指为完成某一特定处理功能的相对独立的操作序列,比如输入一类数据、统计一类数据、打印一类数据等。

任务分类表
任务ID 名称 功能 类型 主人 用户 执行日期 频率 操作过程
顺序编号 任务名称 任务的功能描述 输入、查询、制表、统计、修改等 任务的发起者 任务的使用者   单位时间内任务的执行次数 任务的基本处理步骤

 

b. 数据操作特征表: 用来描述任务和数据之间的关系,它包括不同任务对数据执行不同操作的频率

数据操作特征表
数据ID 数据分类ID 任务ID 建立 查询 插入 修改 删除 数据量
顺序编号 与数据分类表对应的编号ID 与任务表对应的编号ID 对数据执行操作的单位时间内的操作频率 某类数据在执行完某项任务后记录的个数

 

③ 数据约束 

是指使用数据的特殊要求。

a. 数据的安全保密性

b. 数据的完整性

c. 响应时间

d. 数据恢复

⑷ 编写需求分析报告

        需求分析报告是在需求分析的过程中逐渐整理而形成的,它应能准确的表达应用需求,要求可读性强,且无二义性,能为数据库的后续阶段设计提供全面、准确和详细的资料。它通常包括以下内容:

① 数据库的应用功能目标

② 标明不同用户视图范围

③ 应用处理过程需求说明:它包括数据流程图、任务分类表、数据操作特征表、操作过程说明书等。

④ 数据字典

        它是数据库系统中存储三级结构定义的数据库,通常指的是数据库系统中各类数据详细描述的集合,它的功能是存储和检索各种数据描述。在数据库设计中,它提供了对各类数据描述的集中管理,是一种数据分析、系统设计和管理的有力工具。

⑤ 数据量

⑥ 数据约束

2、概念结构分析

        它是在需求分析报告的基础上,按照特定的方法设计满足应用需求的用户信息结构,该信息结构通常称为概念模型。概念模型的设计目标是最大限度的满足应用需求,可完全不顾具体的硬件和软件的限制,它是一个符合用户要求的趋于理想化的信息结构。

        概念结构设计的常用设计方法有实体分析法和属性综合法两种。

3、逻辑结构分析

        逻辑结构设计的目标是将概念模型转换为等价的、并为特定的DBMS所支持的数据模型的结构。数据库逻辑模型一般由层次、网状、关系数据模型表示。

⑴ 逻辑结构设计的输入与输出信息

逻辑结构设计是在需求分析及概念结构设计的基础上进行的,它通常要求提供如下输入信息:

① 独立于特定DBMS的概念模型;

② 有关响应时间、安全保密性、数据完整性及恢复方面的要求说明,包括保持数据一致性的规则说明;

③ 数据量及使用频率;

④ 特定DBMS特性,包括DBMS支持的数据模型及数据定义语言的说明。

在完成逻辑结构设计之后,应该形成如下输出信息:

① 一个特定DBMS支持的概念模型,或称为模式;

② 一个或多个外部视图,或称为子模式;

③ 物理设计说明,主要包括存入数据库中的数据量、使用频率以及响应时间要求;

④ 程序设计说明,是在需求分析的基础上,根据已经完成的逻辑模型,编制各程序名、执行逻辑步骤、存取数据的名称、顺序及操作特征(增、删、查、改)的说明。

⑵ 逻辑结构设计的步骤

① 模型转换:是指将概念模型等价地转换为特定DBMS支持的关系模型、网状模型或层次模型表示;

② 子模式设计:它的目标是抽取或导出模式的子集,以构造不同用户使用的局部数据逻辑结构;

③ 编制应用程序设计说明:它的目的是为可实际运行的应用程序设计提供依据与指导,并作为设计评价的基础;

④ 设计评价:它的任务是分析并检验模式及子模式的正确性与合理性,其方法是通过程序设计指南中提交的程序执行逻辑步骤在子模式上的模拟来考核模式及子模式是否满足应用需求,并进一步估计数据容量及存取效率,为物理设计提供参考信息。

4、物理设计

        物理设计是指对于一个给定的数据库逻辑结构,研究并构造物理结构的过程,其任务主要是确定数据库在存储设备上的存储结构及存取方法,因DBMS的不同,还可能包括建立索引和聚集,以及物理块大小、缓冲区个数和大小、数据压缩的选择等。

5、数据库实施

数据库实施阶段需要完成的工作包括:加载数据、应用程序设计和数据库试运行。

⑴ 加载数据

        加载数据是指将符合要求的初始数据装载到数据库中去,其具体包括数据的收集、分类、整理校验和输入等过程。

⑵ 应用程序设计

        其实,应用程序不应是数据库设计的范畴,但它又必须且只能是随着数据库结构的进展而逐步地并行进行。

⑶ 数据库试运行

        试运行是指在已建立的数据库上,按生产环境的要求运行应用程序,进行对数据库的各种操作,检验其功能和性能,如有不当或错误,则应根据实际情况修改应用程序、修改数据库物理模型,甚至修改逻辑模型。

6、数据库运行和维护

        数据库运行时需要工作人员在系统运行中做好维护工作,监督、发现和分析问题,提出改进或扩展方案并付诸实施。此外,还应定期或不定期的进行数据转储,当系统出现故障时进行恢复处理,并实施安全与完整性控制。

三、关系数据库设计方法

1、关系数据库设计过程与各级模式

        按照数据库设计的基本步骤,在关系数据库设计的不同阶段,会形成数据库的各级模式,即在概念结构设计阶段,形成独立于机器特点、独立于各个关系数据库管理系统产品的概念模式,如E-R图;在逻辑结构设计阶段,将E-R图转换成具体的数据库产品支持的关系数据模型,形成数据库逻辑模式,然后根据用户的要求、安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式;在物理结构的设计阶段,根据关系数据库管理系统的特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。

2、概念结构设计方法

        关系数据库的概念结构设计通常采用自顶向下法,它首先建立局部信息结构,然后将局部信息结构合成为全局信息结构并优化,其中使用E-R作为概念模型的描述工具。

⑴ E-R图的表示方法

E-R图提供了表示信息世界中实体、属性和联系的方法,具体如下:

① 实体型:用矩形表示,矩形框内写明实体的名称;

② 属性:用椭圆形表示,并用无向边将其与相应的实体连接赶来;

③ 联系:用菱形表示,菱形框内写明联系的名称,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:N或M:N),如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

在现实世界中,实体之间的联系通常是指不同实体型的实体集之间的联系,设有两个实体集A、B,两个实体型之间的联系可以分为一对一、一对多、多对多三种类型,具体如下:

① 一对一联系(1:1)

        如果对于实体集A中的每一个实体,实体集B中最多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1,如班级与组长;

② 一对多联系(1:N)

        如果对于实体集A中的每一个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中最多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:N,如班级与学生;

③ 多对多联系(M:N)

        如果对于实体集A中的每一个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中也有M个实体与之联系,则称实体集A与实体集B具有多对多联系,记为M:N,如学生与课程;

实际上,一对一联系是一对多联系的特例,而一对多联系是多对多联系的特例。

⑵ 局部信息结构设计

        根据需求分析报告中标明的不同用户视图范围所建立的满足该范围内用户需求的信息结构,称为局部信息结构。局部信息结构设计的步骤分为:确定局部范围;选择实体;选择实体关键字;确定实体间的联系;确定实体的属性。

⑶ 全局信息结构设计

        全局信息结构设计是将上述步骤中产生的所有局部信息结构合并成为一个全局信息结构。全局信息结构必须是所有局部信息结构的全面准确的映像,即合并前各局部信息结构所能实现的应用需求,合并形成的全局信息结构仍能实现。同时,在全局信息结构中应努力避免可能出现的数据不一致问题,并尽可能的增强数据的共享性,控制数据的冗余。

3、逻辑结构设计方法

        它的任务是把概念结构设计产生的概念模型转换为具体的DBMS所支持的逻辑数据模型。在关系数据库设计中,它的任务就是把E-R图转换为关系数据库管理系统所支持的关系模型,通常包括三项工作:将E-R图转换为关系模型、对关系数据模型进行优化、设计面向用户的外模式。

⑴ E-R图向关系模型的转换

        关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体间的联系三个要素组成的,因此将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体间的联系转换为某种关系模式。

⑵ 数据模型的优化

        为了进一步提高数据库应用系统的性能,还应该根据需要适当的修改、调整数据模型的结构,进行数据模型的优化。优化的方法如下:

① 确定各属性间的函数依赖关系;

② 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系;

③ 判断每个关系模式的范式,根据实际需要确定最合适的范式;

④ 分析模式的应用环境是否合适,是否需要对某些模式进行合并或分解;

⑤ 对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。

⑶ 设计用户子模式

        将概念模型转换为全局逻辑模型之后,可根据局部应用需求,利用视图(View)设计更符合局部用户需要的用户外模式。

4、物理设计方法

        物理设计的任务主要是通过对关系建立索引和聚集来实现与应用相关数据的逻辑连接和物理聚集,以改善对数据库的存取效率。

⑴ 建立索引

        由于建立索引会带来维护索引空间的开销,因而建立索引的数据对象通常应具有较小的插入、修改和删除操作。一般,用以建立索引的那些属性也应是其所在关系中使用频率较高的属性。

⑵ 建立聚集

        聚集是将相关数据集中存放的物理存储技术,借以提高I/O的数据命中率而改善存取速度。所谓集中存放是指将相关数据尽可能的存放于一个物理块中,或一个磁道中,或一个柱面中,或相邻区域中。

        数据聚集结构的一种有效方式是块结构方式,块与块之间由指针连接,一个块对应于一个物理分区。数据聚集可以在一个或多个关系上建立。无论采用何种方式,数据使用频率较高的数据才有必要建立聚集,数据量通常也较大,且更新操作应较少。

猜你喜欢

转载自blog.csdn.net/Alexshi5/article/details/81429791