数据库系统概论(第七章)----数据库设计

1.数据库设计的概述

  • 广义上:数据库设计是数据库及其应用系统的设计,即设计整个数据库应用系统
  • 狭义上:设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。的。

这里讲的数据库设计是指狭义上。

数据库设计的定义:

数据库里设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种应用需求,包括信息管理要求和数据库操作要求。

数据库设计的特点

  • 三分技术,七分管理,十二分基础数据。 这也是数据库建设的基本规律
    "十二分基础数据"强调了数据的收集、整理、组织和不断更新是数据库建设的重要环节
  • 结构(数据)设计和行为(处理)设计相结合。早期的数据库设计着重于结构特性。

数据库设计方法

大型数据库设计是涉及多学科的综合性技术,又是一项庞大的工程项目。他要求从事数据库设计的专业人员具备多方面的是指和技术,主要包括:

  • 计算机基础知识
  • 软件工程原理和方法
  • 程序设计的方法和技巧
  • 数据库的基本知识
  • 数据库设计技术
  • 应用领域知识

早期的设计方法:手工与经验相结合的方法。
现在的设计方法:新奥尔良方法(New Orleans)、基于E-R模型的设计方法、3NF(第三范式)设计方法、面向对象数据库设计方法、统一建模语言(UML)方法。

数据库设计步骤

在这里插入图片描述
在数据库设计过程中,需求分析和概念结构设计可以独立于任何数据库管理系统进行,逻辑结构设计和物理结构设计与选用的数据库管理系统密切相关。

1.需求分析阶段

是否做得充分与准确,决定了构建数据库的速度和质量

2.概念结构设计阶段

通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型

3.逻辑结构设计阶段

将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化

4.物理结构设计阶段

为逻辑数据结构选取一个最适合应用环境的物理结构,包括存储结构和存取方法

5. 数据库实施阶段

根据逻辑设计和物理设计的结果构建数据库
编写与调试应用程序
组织数据入库并进行试运行

6. 数据库运行和维护阶段

经过试运行后即可投入正式运行,在运行过程中必须不断对其进行评估、调整与修改


以下图是设计过程各个阶段关于数据特性的设计描述:
在这里插入图片描述

数据库设计过程中的各级模式

以下图为数据库设计不同阶段形成的数据库各级模式。
在这里插入图片描述

  • 需求阶段:综合各个用户的应用需求
  • 概念设计阶段:形成独立于机器特点,独立于各个数据库管理系统产品的概念模式(E-R图)
  • 逻辑设计阶段:
  1. 首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,
    形成数据库逻辑模式
  2. 然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立
    必要的视图(View),形成数据的外模式
  • 物理设计阶段:
    根据数据库管理系统特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式

2.需求分析

需求分析就是简单的分析用户的要求。是设计数据库的起点

需求分析的任务

需求分析的任务就是通过详细调查现实世界要处理的对象,充分了解原系统(手工系统或计算机系统)的工作状况,明确用户的各种需求,然后在此基础上确定新系统的功能。注意新系统必须充分考虑今后的扩展和改变。

需求分析的方法

进行需求分析首先要调查清楚用户的实际需求,与用户达成共识,然后分析与表达这些要求。

调查用户需求步骤:
(1)调查组织机构情况
(2)调查各部门的业务活动情况
(3)协助用户明确对新系统的各种要求,包括信息要求、处理要求、完全性与完整性要求
(4)确定新系统的边界

常用调查方法:
(1)跟班作业
通过亲身参加业务工作了解业务活动的情况
(2)开调查会
通过与用户座谈来了解业务活动情况及用户需求
(3)请专人介绍
(4)询问
对某些调查中的问题,可以找专人询问
(5)设计调查表请用户填写
调查表设计合理,则很有效
(6)查阅记录
查阅与原系统有关的数据记录

分析方法:
结构化分析方法(Structured Analysis,简称SA方法),SA方法从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统
对用户需求进行分析与表达后,需求分析报告必须提交给用户,征得用户的认可

需求分析过程:
在这里插入图片描述

数据字典

数据字典是进行详细的数据收集和数据分析所获得的的主要成果。它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程几部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

数据项

数据项是不可再分的数据单位。对数据项的描述通常包括以下内容。

数据项描述={数据项名,数据项含义说明,别名,
                          数据类型,长度,取值范围,取值含义,
                          与其他数据项的逻辑关系,
                          数据项之间的联系}

数据项简单的理解就是表中某一字段。

数据结构

数据结构反映了数据之间的组合关系。 一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。

数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
数据流

数据流是数据结构在系统内传输的路径。

数据流描述={数据流名,说明,数据流来源,
                           数据流去向,组成:{数据结构},
                           平均流量,高峰期流量}
  • 数据流来源:说明该数据流来自哪个过程
  • 数据流去向:说明该数据流将到哪个过程去
  • 平均流量:在单位时间(每天、每周、每月等)里的传输次数
  • 高峰期流量:在高峰时期的数据流量
数据存储

数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。

数据存储描述={数据存储名,说明,编号,输       
                             入的数据流 ,输出的数据流,
                             组成:{数据结构},数据量,
                             存取频度,存取方式}
  • 存取频度:每小时、每天或每周存取次数,每次存取的数据量等信息
  • 存取方法:批处理 / 联机处理;检索 / 更新;顺序检索 / 随机检索
  • 输入的数据流:数据来源
  • 输出的数据流:数据去向
处理过程

处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息

处理过程描述={处理过程名,说明,输入:{数据流},   
                              输出:{数据流},处理:{简要说明}}

简要说明:说明该处理过程的功能及处理要求

  • 功能:该处理过程用来做什么
  • 处理要求:处理频度要求,如单位时间里处理多少事务,多少数据量、响应时间要求等
  • 处理要求是后面物理设计的输入及性能评价的标准

在这里插入图片描述

3.概念结构设计

将需求分析得到的用户需求抽象为信息结构(概念模型)的过程就是概念结构设计。

概念模型

在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,然后才能更好、更准确地用某一数据库管理系统实现这些需求。

概念模型的主要特点:

  • 能真实、充分地反映现实世界,包括事务和事务之间的联系,能满足用户对数据的处理要求,是现实世界的一个真实模型。
  • 易于理解,可以用它和不熟悉计算机的用户交换意见
  • 易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充
  • 易于向关系、网状、层次等各种数据模型转换。

E-R模型

E-R模型是描述概念模型的有力工具

实体之间的联系

在这里插入图片描述
实体间的联系有两个实体之间的联系(二元联系)、两个以上实体间的联系(n元联系)、单个实体间的联系(父子)

E-R图

E-R图提供了表示实体型、属性和联系的方法。

  • 实体型用矩形表示,矩形内写明实体名
  • 属性用椭圆表示,并用无向边将其与相应的实体联系起来
    在这里插入图片描述
  • 联系用菱形表示,菱形内写明联系名同时在无向边旁标上联系的类型(1∶1,1∶n或m∶n)。
    在这里插入图片描述

概念结构设计

概念结构设计的第一步就是对需求分析阶段收集到的数据进行分类、组织,确定实体、实体类的属性、实体之间的联系类型。

1.实体与属性的划分规则

为了简化E-R图的处置,现实世界的事务能作为属性对待的尽量作为属性对待。

符合什么条件的事务可以作为属性对待呢?两条规则:

  • 作为属性,不能再具有需要描述的性质,即属性必须是不可分的属性项(1NF),不能包含其他属性
  • 属性不能与其他实体具有联系,即E-R图中表示的是实体间的联系,而非属性与其它实体或属性的联系。
2.E-R图的集成

在开发一个大型信息系统时,最经常采用的策略是自顶向下需求分析,然后再自底向上设计概念结构。即首先设计各子系统的分E-R图(可能由不同的团队设计),然后将它们集成起来得到全局E-R图。集成一般分两步走:1.合并解决冲突。2.修改和重构
在这里插入图片描述
1.合并解决冲突
各子系统的E-R图之间的E-R图之间冲突主要有三类:属性冲突、命名冲突、结构冲突。
①属性冲突

  • 属性域冲突,即属性值得类型、取值范围或取值集合不同。
  • 属性取值单位冲突,例如零件的重量有以斤为单位,也有以克为单位。
    ②命名冲突
  • 同名异义,即不同含义的对象在不同局部应用具有相同的名字
  • 异名同义(一义多名),即同一意义的对象在不同局部应用中具有不同的名字。
    ③结构冲突
  • 同一对象在不同应用中具有不同的抽象。例如职工在某一局部应用中被当做实体,而在另一局部应用中则被当做属性。
  • 同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次数不完全相同。
  • 实体联系在不同的E-R图中为不同的类型。如E1与E2在一个E-R图中为多对多联系,在另外一个E-R图中E1、E2、E3三者又是多对多的关系。
    2.消除不必要的冗余
    所谓冗余是指可由基本数据导出的数据。有时候为了提高效率,冗余可以不消除。

4.逻辑结构设计

逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。

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

E-R图向关系模型转换要解决的问题就是,如何将实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。转换的一般原则是:一个实体转换为一个关系模式

数据模型优化

数据库逻辑设计的结果并不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用适当的修改、调整数据模型的结构。关系模型的优化通常以规范化理论作为指导,例如第三范式等。但是要注意的是并不是规范化越高的关系越优。

设计用户子模式

将概念模型转换为全局逻辑模型后,还应该根据局部应用要求,结合具体关系数据库管理系统的特点设计用户的外模式,例如SQL关系型数据库中可以利用视图设计更符合局部用户需要的外模式。

定义外模式时可以注重考虑用户的习惯于方便,具体包括以几个方面

  • 使用更符合用户习惯的别名
  • 可以对不同级别的用户定义不同的视图以保障系统的安全性。
  • 简化用户对系统的使用。

5.物理结构设计

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
主要分为以下两步:

  • 确定数据库物理结构,在关系型数据库中主要指存取方法和存取结构
  • 对物理结构进行评价,评价重点是时间和空间效率

数据库物理设计的内容和方法

不同数据库产品所提供的物理环境、存取方法和存取结构很大差别,因此没有通用的设计方法可遵循,只能给出一般的设计内容和原则。

通常关系型数据库物理设计的主要内容包括:关系模式选择存取方法,以及设计关系、索引等数据库文件的物理存储结构

关系模式存取方法选择

数据库系统是多用户共享系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。物理结构设计的任务之一就是根据数据库系统的支持选择哪种的存取方法。

常用的存取方法为索引法和聚簇方法。B+树索引和hash索引是数据库总经典的存取方法、使用最普遍。

1.B+树索引存储方法的选择

所谓选择索引存储方法,实际上就是根据应用要求确定对关系的哪些属性列建立索引、哪些索引列建立组合索引、哪些列建立唯一索引。一般如下:

  • 如果一个(或一组)属性经常在查询条件中出现,则考虑这个(列或这组)属性上建立索引(或组合索引)
  • 如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑这个属性上建立索引
  • 如果一个(或一组)属性经常在连接或连接操作的连接条件中出现,则考虑这个(或这组)属性建立索引。

索引的定义不是越多越好,索引多了系统维护索引要付出很大的代价。例如更新频率高的属性就不适合建立太多的索引。

2.hash索引存取方法的选择

选择hash存取方法的规则如下:如果一个关系的属性主要出现在等值连接条件中或主要出现在等值比较选择中,而且满足下列两个条件,则此关系可以选择hash存储方法。

  • 一个关系的大小可预知,而且不变
  • 关系的大小动态改变,但数据库管理系统提供了动态hash存储方法。
3.聚簇存取方法的选择

为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块中称为聚簇。该属性(或属性组)称为聚簇码(cluster key)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

确定数据库的存储结构

确定数据库物理结构主要指确定数据库的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的储存安排和存储结构,确定系统配置。

评价物理结构

数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案。选择最优方案。

6.数据库实施和维护

完成数据库的物理设计之后,设计人员就要用关系型数据库管理系统提供的数据定义语言和其他应用程序将数据库逻辑设计和物理设计结果严格描述出来,称为关系数据库管理系统可以接受的源代码,再经过调试产生目标模式,然后就可以数据入库了,数就是数据库实施阶段。

在数据库运行阶段,对数据库经常性的维护工作主要由数据库管理员完成的,主要包括以下几方面:

  • 数据库转储和恢复
  • 数据库的安全性、完整性控制
  • 数据库性能的监督、分析和改造
  • 数据库的重组织和重构造。

猜你喜欢

转载自blog.csdn.net/qq_41262903/article/details/106228753