Skip to content

2、数据库设计过程

需求分析

  • 参照数据相关要求

产物

  • 数据流图
  • 数据字典
  • 需求说明书

概念结构设计

根据需求阶段的产物

阶段

抽象数据

设计局部 ER 模型

合并局部模型(集成),消除冲突

  • 多个局部 ER 图一次集成
  • 逐步集成,用累加的方式一次集成两个局部 ER 图
冲突及解决方法
  • 属性冲突:包括属性域冲突和属性取值冲突
  • 命名冲突:包括同名异义和异名同义
  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部 ER 图中所包含的属性个数和属性排列次序不完全相同

重构优化,消除冗余

产物

  • ER 图(实体联系图)

ER 图

联系
  • 一对一(1:1)
  • 一对多(1:n)
  • 多对多(n: m)

逻辑结构设计

考虑 ER 图

产物

关系模式(参考需求从 ER 图转换而来)

是一种数据模型,数据模型三要素:数据结构、数据操作、数据的约束条件

样式及组成
  • 形式 1: 学生(学号、姓名、年龄、班级编号)

  • 形式 2: 学生(U、F) U={学号、姓名、年龄、班级编号} F=

  • 目或度:关系模式中属性的个数

  • 候选码(候选键):唯一标识元组,没有冗余

  • 主码(主键):候选键中任选一个

  • 主属性和非主属性:组成候选码的属性就是主属性,其它就是非主属性

  • 外码(外键)

  • 全码:关系模式的所有属性组是这个关系的候选码

派生属性:能推算出的属性就是派生属性,比如出生日期可以推算年龄

模型
  • 层次模型
  • 网状模型
  • 面向对象模型
  • 关系模型:学生(学号、姓名、年龄、班级编号)

阶段

转化为关系模型

  • 实体向关系模式转换
  • 联系向关系模式转换

关系规范化

非规范化的问题
  • 数据冗余
  • 更新异常(修改操作一致性问题)
  • 插入异常
  • 删除异常
基本概念
函数依赖

学号 -> 系号 系号 -> 系名

左边可以唯一确定右边,右边不能唯一确定左边

候选键

唯一标识元组,且无冗余

使用图示法找候选键

将关系模式的函数依赖用“有向图”表示 找到入度为 0 的属性,并以该属性集合为起点,尝试遍历有向图,如果能正常遍历图中所有节点,则该属性集即为关系模式的候选键 若入度为 0 的属性集不能遍历图中所有节点,则需要尝试性的将一些中间节点(有入度有出度)并入入度为 0 的属性集中,直至该集合能遍历所有节点,集合为候选键

公理系统 Armstrong

关系模式 R<U,F>来说有以下推理规则:

  • A1.自反律:若 Y 属于 X 属于 U,推出 X->Y
  • A2.增广律:若 Z 属于 U 且 X->Y,推出 XZ->YZ
  • A3.传递律:若 X->Y 且 Y->Z,推出 X->Z

根据 A1、A2、A3,可以推导出以下结论:

  • 合并规则:由 X->Y 和 Y->Z,推出 X->YZ (A2、A3)
  • 伪传递规则:由 X->Y,WY->Z,推出 Xw->Z (A2、A3)
  • 分解规则:由 X->Y 和 Z 属于 Y,推出 X->Z (A1、A3)
范式判断

级别越高越能解决插入异常、删除异常、数据冗余的问题

  • 1NF:属性值都是不可再分的原子值

    简单属性和复杂属性,单值属性和多值属性,NULL 属性,派生属性

  • 2NF:必须满足第一范式,且每个非主属性完全依赖主键

  • 3NF:必须满足第二范式,且没有非主属性传递依赖于主键

  • BCNF:消除主属性对候选键的部分和传递依赖

模式优化

设计用户子模式

确定完整性约束

  • 实体完整性约束:规定基本关系的主属性不能取空值(唯一且非空)
  • 参照完整性约束:关系与关系间的引用,其他关系的主键或空值()
  • 用户自定义完整性约束:应用环境决定
  • 触发器

用户视图的确定

  • 根据数据流图确定处理过程使用的视图
  • 根据用户类别确定不同用户使用的视图

转换原则

  • 一个实体性必须转换为一个关系模式
  • 联系转关系模式:一对一、一对多(并入实体);一对一、一对多、多对多(独立关系)

一对一转换

  • 独立的关系模式:并入两端主键及联系自身属性(主键:任一端主键)
  • 归并(任意一端):并入另一端主键及联系自身属性(主键:保持不变)

一对多转换

  • 独立的关系模式:并入两端主键及联系自身属性(主键:多端主键)
  • 归并(多端):并入另一端主键及联系自身属性(主键:保持不变)

多对多转换

  • 独立的关系模式:并入两端主键及联系自身属性(主键:两端主键的组合键)

物理设计

完成对数据库分布形式、存储形式、访问形式的设计 涉及到索引等,是物理设计阶段

KESHAOYE-知识星球 V20250523200726