大家好,又见面了,我是你们的朋友全栈君。
摘要:微信搜索【三桥君】 说明:本篇文章讲解的内容是“浅析如何把ER模型转换为关系模式”。在做ER图题目时,有些同学还是经常会做错,最主要原因是没有理解他们之间转换的原理。本文通过理论分析和例题来浅析这块知识点,当理解后,可以趁热打铁,把后面推荐的例题题目做一下,即可完全吸收这块内容。
一、理论分析
通常情况下,单独的ER实体型转换为关系模式,那该模式里面只有属性。 例如:
学生( 学号,姓名,性别,出生年份,系,入学时间)
关于ER模型的转换,我们只需要记住三个转换准则: 1:1、1:N、M:N。
(1)1:1 当转换为关系模型时,在两个实体任选一个添加另一个实体的主键即可。 如图(a)情况,当我们转换成关系模式时,我们可以在实体型A模式中添加实体型B的主键;或者在实体型B模式中添加实体型A的主键。 例子: 校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。 当转换为关系模式时,我们可以在班长关系中添加班级的主键(班级号);或者在班级关系中添加班长的主键(学号)。 (2)1:N 当转换为关系模型时,在N端添加另一端的主键。 如图(b)情况,当我们转换成关系模式时,我们得在实体型B模式中添加实体型A的主键。 例子: 一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。 当转换为关系模式时,我们得在学生关系中添加班级的主键(班级号)。 (3)M:N 当转换为关系模型时,需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。 如图(c)情况,当我们转换成关系模式时,我们要把“联系名”转换为实体模式,添加另外两个实体的主键,这两个主键合起来为“联系名”的主键,然后添加该联系自带的属性即可。 例子: 一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。 当转换为关系模式时,我们要把联系“选修”作为实体,当作选修关系,再添加课程的的主键(课程号)、学号的主键(学学号),(课程号,学号)合起来为选修的主键,然后添加选修自带的属性即可。
以上是二元联系的ER模型转换为关系模式,接下来介绍三元联系的ER模型转换为关系模式。
补充: 什么是二元联系、三元联系?
一般地,两个以上的实体型之间也存在着一对一、一对多和多对多联系。
(1)1:1:N 当转换为关系模型时,和1:N的情况是差不多的。我们只需将N端添加另外两端的主键即可。 (2)M:N:P 当转换为关系模型时,联系转换为联系实体,然后在联系实体上添加M端N端P端的主键,然后加上联系实体自身的属性。
二、例题
其他例题 数据库系统原理–第七章作业1–习题答案 E-R图向关系模型的转换实例详解 例题1 例题2 例题3 参考文章 【数据库设计】逻辑设计-ER模型转换为关系模型 https://blog.csdn.net/HaoDaWang/article/details/78098937?locationNum=4&fps=1
文章整理不易,如有帮助请点赞关注支持,谢谢!微信搜索【三桥君】,回复【关注】有我准备的一份资源大礼包。后续持续更新~~~
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160210.html原文链接:https://javaforall.cn