数据库设计

本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2021-04-18

一、数据库设计概述

1.数据库的生命周期

数据库的生命周期可分为两个阶段:

  • 数据库分析与设计阶段:包括需求分析、概念设计、逻辑设计和物理设计四个环节;
  • 数据库实现与操作阶段:包含数据库的实现、操作与监督、修改与调整三个子阶段;

2.数据库设计的目的

数据库设计的两个目标:

  • 满足应用功能需求:用户当前或可预知将来所需的数据及其联系,应全部准确存储在数据库之中从而满足用户应用中对数据进行存、取、删、改操作。
  • 良好的数据库性能:主要是指对数据的高效率存取和空间的节省,并具有良好的数据共享性、完整性、一致性及安全保密性

3.数据库设计的内容

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

  • 数据库结构设计:数据库模式或子模式的设计,包括数据库的概念结构设计、逻辑结构设计和物理结构设计
  • 数据库行为设计:确定数据库用户的行为和动作,而用户的行为和动作是对数据库的操作,通常是通过应用程序来实现;

4.数据可以设计的方法

  • 直观设计法:一类最原始的数据库设计方法,它利用设计者的经验和技巧来设计数据库模式;

  • 规范设计法:一类较为普遍、常用的数据库设计方法;常见的有:新奥尔良设计方法、基于E-R模型的数据库设计方法、基于第三范式的设计方法

    • 新奥尔良设计方法:1978年 提出,将数据库设计分为四个阶段:需求分析、概念结构设计、逻辑结构设计和物理结构设计;
    • 基于E-R模型的数据库设计方法:1976年 提出,在需求分析的基础上用E-R图构造一个反映现实世界实体之间联系的企业模式,然后将此模式转换成某一特定 DBMS 下的概念模式;
    • 基于第三范式的设计方法:结构化设计方法,在需求分析的基础上首先确定数据库的模式、属性及属性间的依赖关系,然后将它们组织在一个单一的关系模式中,再分析模式中不符合第三范式的约束条件,进行模式分解,规范成若干个第三范式关系模式的集合。
  • 计算机辅助设计法:在数据库设计过程中,以领域专家的知识或经验为主导,模拟某一规范化设计的方法,通常通过人机交互的方式来完成设计的某些过程。CASE(Computer Aided(or Assisted) Software Engineering)工,即计算机辅助软件工程工具,比如 Rational Rose。

5.数据库设计的过程

  • 需求分析阶段
  • 结构设计阶段:包括概念结构设计、逻辑结构设计和物理结构设计;
  • 行为设计阶段:包括功能设计、事务设计和程序设计;
  • 数据库实施阶段:包括加载数据库数据和调试运行应用程序;
  • 数据库运行和维护阶段

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

分阶段规范设计方法,遵循自顶向下、逐步求精的原则,将数据库设计过程分解为若干个相互依存的阶段。每一个阶段采用不同的技术与工具,解决不同的问题;

按照分阶段规范设计方法,数据库设计分为六个阶段:需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库的运行和维护;

1.需求分析

需求分析是数据库设计的起点。需求分析的目标是了解与分析用户的信息及应用处理的要求,并将结果按一定格式整理而形成 需求分析报告。该分析报告是后续概念设计、逻辑设计、物理设计、数据库建立与维护的依据。

需求分析的基本方法是听取数据库应用部门工作人员的报告,并与之座谈。

需求分析分为四个步骤:

  • 确定数据库范围,即确定数据库应支持哪些应用功能。数据库设计人员可借助机构与职能关系图来确定数据库范围;

  • 分析数据应用过程,指了解并分析数据与数据处理间的关系。在数据库范围确定之后,数据库设计人员应逐次地了解和分析每一部门或功能要用到哪些数据、数据使用的顺序、对数据作何处理和处理的策略以及处理的结果等;

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

  • 编写需求分析报告,是在需求分析的过程中逐渐整理而形成的,是随着该过程的不断深入而反复修改与完善的;

其中,数据的收集与分析工作可从以下三个方面展开:

  • 静态结构:是指不施加应用操作于其上时数据的原始状况,这可通过 数据分类表 和 数据元素表 进行说明;

  • 动态结构:是指将应用操作施加于数据之上后数据的状况,可通过 任务分类表 和 数据操作特征表 进行说明;

  • 数据约束:是指使用数据时的特殊要求。主要有数据安全保密性、数据完整性、响应时间、数据恢复。

    • 数据的安全保密性:是指针对各种不同类数据,谁拥有操作(存、取、删、改)的不同授权;
    • 数据的完整性:是指数据正确性的约束范围和验证准则,以及一致性保护的要求;
    • 响应时间:是指某些特定应用要求的数据存取的时间限制;
    • 数据恢复:是指转储及恢复的时机与范围等要求;

需求分析报告通常包含以下内容:

  • 数据库的应用功能目标;
  • 标明不同用户视图范围;
  • 应用处理过程需求说明;
  • 数据字典:提供了对各类数据描述的集中管理,是一种数据分析、系统设计和管理的有力工具。
  • 数据量;
  • 数据约束;

2.概念结构设计

概念结构设计的任务是在需求分析中产生的需求分析报告的基础上,按照特定的方法设计满足应用需求的用户信息结构(概念模型)。概念模型独立于任何软件与硬件。

常用的方法:实体分析法(自顶向下法)和属性综合法(自底向上法)。其中是采用E-R图作为概念模型的描述工具。

3.逻辑结构设计

逻辑结构设计的目标是将概念模型转换为等价的、并为特定DBMS所支持数据模型的结构

逻辑结构设计的步骤:概念设计 -> 模型转换 -> 子模式设计 -> 编制应用程序设计说明 -> 设计评价 -> 物理设计;

  • 模型转换是指将概念模型等价地转换为特定 DBMS 支持的关系模型、网状模型或层次模型表示。
  • 子模式设计的目标是抽取或导出模式的子集,以构造不同用户使用的局部数据逻辑结构

4.物理结构设计

物理设计是指对于一个给定的数据库逻辑结构,研究并构造物理结构的过程。

具体任务有:确定数据库在存储设备上的存储结构及存取方法建立索引和聚集物理块大小、缓冲区个数和大小、数据压缩的选择等。

5.数据库实施

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

6.数据库运行与维护

只有经过试运行之后,确认系统无故障或暂未发现故障时,系统才能投入到生产实际中运行。

数据库系统投入实际运行标志着数据库设计和应用开发的基本完成,但绝不意味着设计和应用开发工作的终止。系统维护中最困难的工作是数据库重组与重构

三、关系数据库设计方法

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

关系数据库各级模式

2.概念结构设计方法

2.1、E-R图的表示方法

E-R 图提供了表示信息世界中实体、属性和联系的方法,实体用矩形,属性用椭圆形,联系用菱形,都是无向边相连。

2.2、局部信息结构

根据需求分析报告中标明的不同用户视图 围所建立的满足该范围内用户需求的信息结构。

局部信息结构设计步骤:

  • 确定局部范围;
  • 选择实体;
  • 选择实体的关键字属性;
  • 确定实体间联系;
  • 确定实体的属性;

2.3、全局信息结构设

全局信息结构设计是将所有局部信息结构合并成为一个全局信息结构。

各局部E-R图之间的冲突主要表现在三个方面:

  • 属性冲突:属性域冲突;属性取值单位错误;
  • 命名冲突:同名异义,异名同义;
  • 结构冲突:同一对象在一个图中是实体,另一个图中是属性;同一实体在不同图中属性个数和类型不同;实体之间的联系在不同的图中是不同的类型;

属性冲突和命名冲突这两种采用讨论、协商等行政手段解决,结构冲突需要认真分析,采用技术手段加以解决;

全局 E-R 模型的优化要达到的三个目的:

  • 实体类型个数尽可能少;
  • 实体类型所含属性尽可能少;
  • 实体类型间联系无冗余;

3.逻辑结构设计方法

在关系数据库设计中,逻辑结构设计的任务是把概念结构设计阶段已设计好的E-R图转换为关系数据库管理系统所支持的关系模型,通常包括三项工作:

  • 将 E-R 图转换为关系模型;
  • 对关系数据模型进行优化;
  • 设计面向用户的外模式;

3.1、将 E-R 图转换为关系模型

E-R 图转换为关系模型一般遵循以下原则:

  • 实体转换为关系模式,原则:实体的属性作为关系的属性,实体的码作为关系的码;

  • 1:1联系

    • 独立的关系模式,原则:与该联系相连的各实体的码 与 联系本身的属性 转换为关系的属性,每个实体的码都是该关系的候选码
    • 与任意一端合并,原则:需要在该关系模式的属性中 加入 另一个关系模式的码和联系本身的属性
  • 1:N联系

    • 独立的关系模式,原则:与该联系相连的各实体的码 与 联系本身的属性 转换为关系的属性,关系的码为N端实体的码。
    • 与N端的关系模式合并,原则:在N端的关系模式的属性中加入1端的码和联系本身的属性;
  • M:N联系 转换为 关系模式,原则:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,关系的码为各实体码的组合

  • 三个三以上实体间的一个多元联系转换为关系模式,原则:与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,关系的码为各实体码的组合。

3.2、数据模型的优化

为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。

关系数据模型的优化通常以关系规范化理论为指导,其方法如下:

  • 确定各属性间的函数依赖关系;
  • 对于各个关系模式之间的数据依赖进行 极小化处理 ,消除冗余的联系;
  • 判断每个关系模式的范式,根据实际需要 确定最合适的范式;
  • 按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解;
  • 对关系模式进行必要的分解,提高数据操作的效率 和 存储空间的利用率。

3.3、设计用户子模式

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

定义数据库全局模式主要是从系统的时间效率、空间效率、易维护等角度出发。

定义用户外模式时需考虑以下3 个方面:

  • 可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用;
  • 可以对不同级别的用户定义不同的视图,以保证系统的安全性;
  • 简化用户对系统的使用;

4.物理设计方法

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

建立索引:

  • 索引的建立是通过 DBMS 提供的有关命令来实现;
  • 建立索引的方式通常有 静态 和 动态 两种。

建立聚集:

  • 聚集是将相关数据集中存放的 物理存储技术,借以提高I/O的数据命中率而改善存取速度,其功能由具体的 DBMS 所提供;
  • 数据聚集结构的一种有效方式是 块结构方式 ,块与块之间由 指针 链接,一个块对应一个物理分区。