3.4.2 E-R模型向关系模型的转换
关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体型、实体的属性和实体型之间的联系三个要素组成。E-R模型向关系模型的转换要解决的问题是如何将实体和实体之间的联系转换为关系模式,如何确定这些关系模式的属性和码。这种转换一般遵循如下原则:
一个实体型转换为一个关系模型。实体的属性就是关系的属性,实体的码就是关系的码。对于实体型间的联系则有以下不同的情况:
(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
(3)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(5)具有相同码的关系模式可以合并。【例3.4】学生管理系统的E-R模型向关系模型转换。如图3.13所示。
图3.13 学生管理系统E-R模型图
按照上述规则,转换结果可以有多种,其中的一种如下(带‘#’字段为码,带下画线字段为外码):
课程表(课程号#,课程名,开学学期,学分)
学生表(学号#,姓名,年龄,性别,系名)
系表(系名#,专业简介,教工号)
系主任表(教工号#,姓名,性别)
成绩表(课程号#,学号#,成绩)
【例3.5】项目管理系统的E-R模型向关系模型转换。如图3.14所示。
图3.14 项目管理系统E-R模型图
转换后的结果如下:
供应商表(供应商号#,供应商名,地址)
零件表(零件号#,零件名,颜色,重量)
项目表(项目号#,项目名,地址)
供应表(供应商号#,零件号#,项目号#,供货时间,供货数量)