数据库设计过程与设计方法

数据库设计的四个过程

image.png

一、需求分析

  • 目标:理解企业、理解企业业务过程与数据处理流程、理解数据处理的性能需求
  • 形成数据库设计的“源”清单和“属性”清单以及相关的详细描述,尤其是注意业务规则属性处理规则
  • 结合数据流图等辅助分析与理解

image.png

二、概念数据库设计

  • 实现要求:
    • 各种实体的发现、划分和定义
    • 各种实体属性的发现、分析和定义
    • 各种实体联系的发现、分析和定义
    • 外部视图(模式)和概念视图(模式)的定义
  • 用统一的表达方法,如E-R模型/IDEF1X模型给出描述;不仅绘制出来,而且绘制正确;

    概念数据库设计的两种设计思路

  • 先局部后全局

image.png

  • 先全局后局部

1.png
image.png
image.png

概念数据库设计可能存在的冲突

  • 属性冲突:
    • 属性域的冲突:属性的类型、取值范围不同
      • 如不同学校的学号编码方式不同
    • 属性取值单位冲突
      • 如重量分别采用磅,千克
  • 结构冲突:
    • 同一对象在不同应用中的抽象不同
      • 如职工在某应用中是实体,在另一应用中则抽象为属性
    • 同一实体在不同E-R图中属性组成不同
    • 实体之间的联系在不同E-R图中呈现不同的类型
  • 命名冲突:
    • 同名异义:不同意义的对象具有相同的名字
    • 异名同义:同一意义的对象具有不同的名字

image.png
image.png

三、逻辑数据库设计

  • 要求
    • 将E-R/IDEF1X转换成逻辑模式
    • 遵循关系范式的设计原则
    • 也要注意折中,但折中时需要提示应用开发者或使用者可能存在的问题
    • 外模式和概念模式的定义
  • 用关系模型、网状模型或层次模型规定的模式描述方法进行描述
  • 基本转换规则:实体-属性-关键字的转换
    • E-R图的实体转换为关系
    • E-R图的属性转换为关系的属性
    • E-R图的关键字转换为关系的关键字
  • 复合属性的准换:
    • 将每个分量属性作为复合属性所在实体的属性
    • 或者,将复合属性本身作为所在实体的属性
  • 多值属性的转换:
    • 将多值属性与所在实体的关键字一起组成一个新的关系
  • 联系的转换:
    • 一对一联系:
      • 若联系双方均部分参与(0..1),则将联系定义为一个新的关系,属性为参与双方的关键字属性
      • 若联系一方全部参与(1..1),则将联系另一方的关键字作为全部参与一方关系的属性
    • 一对多联系:
      • 将单方参与实体的关键字作为多方参与实体对应关系的属性

image.png

  • 多对多联系:
    • 将联系定义为新的关系,属性为参与双方实体的关键字

image.png

  • 弱实体的转换:
    • 所对应关系的关键字由弱实体本身的区分属性再加上所依赖的强实体的关键字构成

image.png

  1. - 弱实体集(从属实体)与强实体集(独立实体)之间的联系已经在弱实体集所对应的关系中表示出来了
  • 泛化与具体化实体的转换
    • 高层实体(泛化实体)和低层实体(具体化实体)分别转为不同的关系
    • 低层实体所对应的关系包括高层实体的关键字
  • 多元联系的转换
    • 多元联系可以通过继承参与联系的各个实体的关键字而形成新的关系
    • 这些继承过来的关键字可作为新关系的关键字
    • 也可以新增一个区分属性作为关键字

      四、物理数据库设计

  • 目标:结合指定DBMS物理数据库管理方法,给出概念数据库的物理模式描述。
  • DBMS选型
  • 确定数据库的存储结构,文件类型:如定长文件、不定长文件;堆文件、散列文件或B-Tree文件等
  • 用Triggers,设计一些完整性控制约束
  • 确定数据库的高效访问方式(索引访问,直接访问……)
  • 评估和设置磁盘空间需求
  • 设计用户视图及访问控制规则,以进行安全性控制
  • 建立索引
  • 设计使数据库运行达到最佳效率的一些措施
  • 设计备份Backup和恢复Recovery的步骤

image.png

不正确数据库设计引发的问题及其解决

问题:

  • 冗余:数据库中存在大量冗余
    • 非受控冗余:如下图:

image.png

  • 受控冗余:如Table中的外键(继承其他Table中的键值),如下图:

image.png

  • 插入异常:当一名新同学入学时,尚未指定系,则因系的有关信息不完整,便无法输入到数据库中。
  • 删除异常:当四系所有同学被删除后,则四系的有关信息则随之丢失。

    避免

  • 设计满足规范性,由DBMS或数据库本身来保证

  • 设计不满足规范性,由使用者或应用程序员使用过程中加以注意
  • 数据库设计理论:
    • 数据依赖理论
    • 关系范式理论
    • 模式分解理论

image.png
image.png

小结

image.png