<数据库概论> 如何把E-R图(概念模型)转换为关系模式(逻辑模型)

一:简介

E-R图向关系模式的转换需要考虑的是:

将实体和实体间的联系均转换为关系模式。


关系模式的转换需要:
1:实体的转换
2:联系的转换

其中两个实体间的二元联系的类型有三种:
即: 1:1型,1:n型,m:n型
其中三个实体间的三元联系的类型有四种:
即:1:1:1型和1:1:N型和1:M:N型和M:N:P型

二:二元关系模式的转换

实体关系模式的转换

实体转换为关系模式很简单。


一个实体对应一个关系模型,实体的名称即是关系模型的名称,实体的属性就是关系模型的属性, 实体的码就是关系模型的码。


注意:
1:属性域的问题。
2:非原子属性的问题。E-R图中允许非原子属性

二元关系模式的转换

  • 1:1型二元关系模式的转换。

方法一

  1. 先进行实体关系模式的转换。
  2. 再进行联系的转换。即:写出两个实体的码和联系本身属性。
    (此时联系的关系模式的主键为:两端实体的码)

(故最终采用方法一进行关系模式转换的最终结果是 :
需要对实体进行关系模式的转换和联系关系模式的转换)

方法二

  1. 先进行实体关系模式的转换。
  2. 任意选择一个实体的所有属性再加入另一个实体的码和联系本身的属性。
    (最后选择的这个实体的最终关系模式的主键为:两端实体的码组成的复合键)

(故采用方法二的关系模式转换的最终结果是 :
不必写出联系的转换,联系的转换结果已加在实体的转换结果中)


  • 1:n型关系模式的转换。

方法一

  1. 先进行实体关系模式的转换。
  2. 再进行联系的转换。即:写出两个实体的码和联系本身属性。
    (此时联系的关系模式的主键为: n端实体的码)

(采用方法一的关系模式转换的转换结果是:
需要对实体进行关系模式的转换和联系关系模式的转换)

方法二

  1. 先进行实体关系模式的转换。
  2. 选择n端的实体的所有属性再加入1端的码和联系本身属性。
    (最后n端这个实体的最终关系模式的主键为:两端实体的码组成的复合键)

(故采用方法二的关系模式转换的最终结果是 :
不必写出联系的转换,联系的转换结果已加在n端实体的转换结果中)


  • m:n型联系的转换。

m:n型的联系的关系模式的转换不能省略。
m:n型需要且必须只能写成: 实体的转换+关系的转换。

方法:

  1. 先进行实体的关系模式的转换。
  2. 再进行联系的关系模式转换。
    即:写出两个实体的码和联系本身的属性。
    (此时联系的关系模式的主键为: 两端实体的码组成的复合键)

(故m:n型关系模式转换的最终结果是 :
要写出实体的转换和关系的转换)


三:实际题目的二元关系模式的转换规则

1:对于1:1型和1:n型的转换:
一般都是采用方法二进行转换。

2:对于m:n型联系 的转换只有一种方法。

即需要: 实体的转换+联系的转换(产生3个关系模式)


四:实际题目的二元关系模式的转换的步骤

(两大步骤:先所有实体的转换,后所有联系的转换)

例题:
<数据库概论> 如何把E-R图(概念模型)转换为关系模式(逻辑模型)_第1张图片

1(先所有实体的转换)
先将E-R图中所有出现的实体进行实体转换。结果即:

①系(系编号,系名,电话)
②教师(教工号,姓名,性别,职称)
③课程(课程号,课程名,学分)

2(后所有联系的转换)(1:1和1:N的联系转换结果加入实体转换)

根据E-R图中出现的关系类型对所有的关系类型进行转换(依据上面第三大部分的规则进行关系类型的转换)

对于1:1联系“主管”,可以在“系”模式中加入教工号(教工号为外键)

对于1:N联系“聘用”,可以在“教师”模式中加入系编号属性(系编号为外键)
对于1:N联系“开设”,可以在“课程”模式中加入系编号属性(系编号为外键)

①系(系编号,系名,电话,教工号)
②教师(教工号,姓名,性别,职称,系编号,聘期)

对于M:N联系“任教”,则生成一个新的关系模式:(即M;N联系的关系模式单独拎出来)

①任教(教工号,课程号,教材)

(4)这样,转换成的四个关系模式如下:(转换的最终结果如下:)

①系(系编号,系名,电话,教工号)
②教师(教工号,姓名,性别,职称,系编号)
③课程(课程号,课程名,学分,系编号)
④任教(教工号,课程号,教材)


五: 三个实体间三元关系模式的转化

三个实体间三元关系模式的转换思想和二元关系模式的转换类似。
具体可参考链接: 三元关系模式


The End!!创作不易,欢迎点赞/评论!!欢迎关注个人公众号

你可能感兴趣的:(数据库,数据库,关系模式转换,E-R图,经验分享)