数据库设计过程
- 系统需求分析
- 数据字典
- 数据项、数据结构、数据流
- 数据存储、处理过程
- 数据流图
- 数据字典
- 概念结构设计
- E-R模型
- ODL
- 逻辑结构设计
- 映射为特定DBMS模式数据
- 数据库物理涉及
- 数据库实施
- 数据库运行、维护
数据库设计的内容
数据库结构设计 (静态)
- 逻辑数据库设计
- 局部逻辑结构
- 全局逻辑结构
- 物理数据库设计
- 存储结构
数据库行为设计 (动态)
- 数据的装载
- 应用程序的设计
关系数据库逻辑设计
E-R模型向关系模式的转换
- 1:1
- 联系双方均部分参与,将联系定为一个新关系,属性为参与双方的码
foreign key*2 -> join table
- 联系一方全部参与,将联系另一方的码作为全部参与一方的属性
foreign key
- 联系双方均部分参与,将联系定为一个新关系,属性为参与双方的码
- 1:n
- 将单方参与这一方实体的码作为多方参与这一方实体的属性
foreign key
- 将单方参与这一方实体的码作为多方参与这一方实体的属性
- m:m
- 将联系定义为新的关系,属性为参与双方的码
foreign key*2 -> join table
- 将联系定义为新的关系,属性为参与双方的码
- 弱实体集
- 所对应的关系的码由弱实体集本身的分辨符加上所依赖的强实体集的码
partial key, foreign key
- 所对应的关系的码由弱实体集本身的分辨符加上所依赖的强实体集的码
- 低层实体集
- 低层实体集所对应的关系包括上层实体集的码
概念补充
- 非二元关系转二元关系
- 一般情况下,二元关系能够更好地表示,所以可以考虑进行转化
- 弱实体集
- 没有primary key的实体集, 即没有足够的属性来形成primary key的作用
- 必须要与一个标识/所依赖的(强)实体集关联才有意义
- 关联二者的联系称为identifying relationship
- 如果弱实体集只参与标识性联系,且属性不多,可以考虑将其表示成强实体集的多值复合属性
- 分辨符 (discriminator/partial key)
- 在某一尺度上能够成功标识实体
- 强实体集
- 有primary key的实体集
聚集
通过聚集,把联系看成是一个高层实体集,可以对其做任何对实体集的操作
关系规范化
- 考查关系模式的函数依赖关系,确定范式等级
- 对关系模式进行合并或分解
模式优化
- 目的:提高对数据的存储和存储效率
- 优化方法:进行垂直和水平分割