7、数据库设计
策略
- 自顶向下
- 自底向上
ER 图(概念模型,实体联系模型)
实体
- 实体用矩形表示,框内写实体名
联系
- 联系用菱形表示,通常菱形框内写联系名,用无向边分别与有关实体连接起来,同时标注关系(1:1)
- 把多个实体联系起来
- 关系要考虑双向,再进行合并
属性
- 是实体某方面的特性,用椭圆表示,在椭圆内写属性名,通过无向边和实体连接起来
步骤(新奥尔良法)
当各阶段不能满足用户需求时,均需返回前一阶段,进行必要的修正,如此往复,直到满意为止。
用户需求分析(收集用户需求,确定系统边界)
- 在项目确定之后
- 用户和设计人员对数据库应用系统所要设计的内容和功能的整理和描述
- 是后续开发的基础(逻辑设计以此结果为依据)
- 结果是系统说明文档,包括数据字典、数据流图、用户活动、需求说明文档
概念设计(ER 图)
- 要把大的系统,拆分成局部应用
- 设计 ER 图时,先设计局部视图,再合并取消冲突
冲突
- 属性冲突:同一属性会存在于不同 ER 图,但是取值范围、类型、单位等可能会不一致
- 命名冲突:相同意义的属性在不同 ER 图中命名不同,或是相同命名有不同含义
- 结构冲突:同一实体在不同 ER 图中有不同的属性,同一对象在一个 ER 图中为实体,在另一个中为属性
合并优化
- 实体类型的合并
- 冗余属性的消除
- 冗余联系的消除
逻辑设计(确定数据模型、ER 图转关系模型,规范化)
- 可以是层次模型、网状模型、关系模型
ER 图转换为关系模型
- 实体转换为关系模式(简单):实体名就是关系模式的名称,实体属性转换为关系模型的属性,实体标识符转换为关系的码
- 联系转换为关系模式:
- 一对一联系的转换:将联系归并到关联实体的任一方,给待归并方加上另一个实体的码和联系的属性
- 一对多联系的转换:将联系归并到关联的两个实体的多方,给待归并方加上另一个实体的码和联系的属性
- 多对多联系的转换:转换成独立的关系模型,名称为联系的名称,属性为关联实体的码和联系的属性
