前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅析如何把ER模型转换为关系模式

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

作者头像
全栈程序员站长
发布2022-09-13 10:53:40
2.2K0
发布2022-09-13 10:53:40
举报
文章被收录于专栏:全栈程序员必看

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、理论分析
  • 二、例题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档