浅析如何把ER模型转换为关系模式

浅析如何把ER模型转换为关系模式本篇文章讲解的内容是“浅析如何把ER模型转换为关系模式”。在做ER图题目时,有些同学还是经常会做错,最主要原因是没有理解他们之间转换的原理。本文通过理论分析和例题来浅析这块知识点,当理解后,可以趁热打铁,把后面推荐的例题题目做一下,即可完全吸收这块内容。

大家好,又见面了,我是你们的朋友全栈君。

摘要:微信搜索【三桥君
说明:本篇文章讲解的内容是“浅析如何把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


文章整理不易,如有帮助请点赞关注支持,谢谢!微信搜索【三桥君】,回复【关注】有我准备的一份资源大礼包。后续持续更新~~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160210.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号