将E-R图转换为关系模式

任务:将基本E-R模型转换为DBMS所支持的数据模型

关系型逻辑结构设计的步骤:

  1. 将概念结构转换为关系模型

  2. 优化模型

  3. 设计适合DBMS的子模式

转换的一般规则

  1. 一个实体型转换为一个关系模式

  2. 一个1:1联系可转换为一个独立的关系模式,也可与任一端对应的关系模式合并

  3. 一个1:n联系可转换为一个独立的关系模式,也可与n端对应的关系模式合并

  4. 一个m:n联系转换为一个关系模式。

  5. 三个或三个以上实体间的多元联系可转换为一个关系模式

  6. 相同码的关系模式可合并

1. 将概念结构转换为关系模型

  • 绘制各实体之间的联系

  • 标注联系的映射基数

2. 合并各个E-R图,生成初步E-R图

合并的过程实际上是一个发现冲突和解决冲突的过程

合并冲突有:

  1. 属性冲突

    属性值类型、取值范围发生冲突

  2. 命名冲突

    同名异义、异名同义

  3. 结构冲突

    • 同一对象在不同视图中有不同抽象

    • 同一实体在不同视图中属性组成不同

    • 相同实体间联系在不同视图中呈现不同类型

3. 消除不必要的冗余,设计基本E-R图

冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系

  • 分析法消除冗余数据

    注意:并不是所有的冗余都必须消除,有时为了提高效率,不得不以冗余为代价

  • 利用关系规范化理论来消除冗余联系

    • 确定局部E-R图实体之间的函数依赖

    • 求F的最小依赖集Fm,求其差集,即D=F-Fm

  • 逐一考察D中每一函数依赖,确定是否为冗余,若是就去掉

4. 码原则

一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。

一个联系转换为一个关系模式,与该联系相连的各实体的码以及联系的属性转换为该关系的属性。该关系的码有五种情况:

  • 若联系是1:1,则每个实体的码均是该关系的候选码

  • 若联系是1:n,则关系的码是n端实体的码

  • 若联系是m:n,则关系的码是参加联系的诸实体的码的集合

  • 若联系是三个或三个以上的实体的一个多元联系,可以转换为一个关系模式,与该多元联系相连的各实体的码以及联系本身的属性均转换为一个关系模式,而关系的码是各实体码的组合

  • 具有相同码的关系模式可以合并

Last updated