关于ER模型的转换,我们只需要记住三个转换准则:
1:1、1:N、M:N
二元联系:
(1)一对一关系(One to One)
映射规则一:当转换为关系模型时,在两个实体任选一个添加另一个实体的主键即可。
例子:
校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。当转换为关系模式时,我们可以在班长关系中添加班级的主键(班级号);或者在班级关系中添加班长的主键(学号)。
(2)多对一关系(Many to one)
映射规则:保留多边(Many-side)E1的所有属性 + 一边(one-side)的主键 + 关系自身的属性到一个扩展(extended)的E1表中。
即当转换为关系模型时,在N端添加另一端的主键和联系的属性。
为什么这么映射?
可以减少数据库的冗余,因为如果是把STUDENT的主键添加到STAFF表中,由于一个STAFF可以对应多个学生,这样子就会出现很多冗余的数据。
一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
当转换为关系模式时,我们得在学生关系中添加班级的主键(班级号)。
(3)多对多关系(Many to Many)
映射规则:取关系两端的实体的主键 + 关系本身的属性
当转换为关系模型时,需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。
如图(c)情况,当我们转换成关系模式时,我们要把“联系名”转换为实体模式,添加另外两个实体的主键,这两个主键合起来为“联系名”的主键,然后添加该联系自带的属性即可。
习题:






本文详细介绍了ER模型转换为关系模型的三个关键准则:一对一、一对多和多对多关系的映射规则。通过具体实例说明了如何在转换过程中减少数据冗余,确保数据完整性和效率。对于一对一关系,可以在任意一方添加另一方主键;对于多对一关系,通常在多的一方添加一方主键和联系属性;对于多对多关系,需创建一个新的实体,包含两端实体的主键和联系属性。
1万+

被折叠的 条评论
为什么被折叠?



