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

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

作者头像
全栈程序员站长
发布于 2022-09-13 02:53:40
发布于 2022-09-13 02:53:40
2.9K0
举报

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
开发必备 | 新手如何快速掌握VSCode编辑器?
描述: VS Code 的全称是 Visual Studio Code,是一款开源的、免费的、跨平台的、高性能的、轻量级的代码编辑器。它在性能、语言支持、开源社区方面,都做得很不错。
全栈工程师修炼指南
2023/10/31
9790
开发必备 | 新手如何快速掌握VSCode编辑器?
测试makedown
删除线 删除线(开启识别HTML标签时) 斜体字 斜体字 粗体 粗体 粗斜体 粗斜体
JuneBao
2022/10/26
4860
测试makedown
欢迎使用 Markdown在线编辑器 MdEditor
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面,Markdown文件的后缀名便是“.md”
ZC.TigerRoot
2020/04/30
3K0
Typora Markdown 语法
当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等。
框架师
2021/03/08
2.9K0
Typora Markdown 语法
超级文本编辑器Sublime Text3「建议收藏」
Sublime Text3是一个超强的文本编辑工具,跨平台(Windows、Linux、Mac);几乎你需要的功能都有,一切可修改(快捷键、插件包etc.);界面优美;可惜的是不开源,不过即使不注册也可以使用。Lime Text是其开源版的一种实现,我还没打算用这个。
全栈程序员站长
2022/09/02
2.8K0
超级文本编辑器Sublime Text3「建议收藏」
[译]27个Jupyter Notebook小提示与技巧
Jupyter notebook, 前身是 IPython notebook, 它是一个非常灵活的工具,有助于帮助你构建很多可读的分析,你可以在里面同时保留代码,图片,评论,公式和绘制的图像。
用户1558438
2018/08/23
1.6K0
数据科学工具 Jupyter Notebook教程 in Python
摘要总结:本文介绍了基于Plotly的Web可视化框架的应用和代码示例,包括折线图、散点图、箱线图、热力图、条形图、瀑布流、地图、交互式图表等。此外,还介绍了如何利用Python的Numpy和Pandas库进行数据处理和分析,以及如何通过Python的Plotly库创建交互式图表。本文还介绍了如何将Plotly嵌入到Web应用程序中,并分享了多个Python代码示例和Jupyter Notebook页面。
张耀琦
2017/09/21
5.7K0
数据科学工具 Jupyter Notebook教程 in Python
关于 R Markdown 的一些 tips
在 YAML 文件中用 number_sections: TRUE 参数设置自动编号:
生信菜鸟团
2020/03/30
1.9K0
Jupyter notebook使用技巧大全
Jupyter Notebook是一款开源的web应用,它允许使用者创建和分享包含代码,公式,可视化图表和纯文本的文档,并支持多种编程语言的交互式计算,对于python用户来讲更是一款十分方便的代码编写工具。只需要通过web浏览器就可以很方便地进行数据清洗和转换,数值模拟,统计建模,数据可视化,机器学习等。本文主要介绍Jupyter Notebook结合python的使用。
超哥的杂货铺
2019/12/18
2.1K0
Jupyter notebook使用技巧大全
【3】jupyter notebook【修改主题、字体、字号、代码自动补全、变更工作目录、添加目录插件、解决工具栏隐藏问题、修改默认浏览器、默认打开位置】
1.jupyter notebook 修改主题、字体字号等设置 github链接地址:https://codechina.csdn.net/mirrors/dunovank/jupyter-theme
汀丶人工智能
2022/12/21
1.8K0
【3】jupyter notebook【修改主题、字体、字号、代码自动补全、变更工作目录、添加目录插件、解决工具栏隐藏问题、修改默认浏览器、默认打开位置】
十五分钟让你快速学习Markdown语法到精通排版实践
描述: Markdown 是一种轻量级标记语言于2004年推出,创始人为约翰·格鲁伯(John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。
全栈工程师修炼指南
2022/09/29
2.5K0
linux 命令中英文对照,收集
听说markdown排版得用浏览器打开,点击最下面的阅读原文也可以! Is Linux CLI case-sensitive? The answer is, yes. If you try to ru
生信技能树
2018/03/05
2.2K0
1.5w字的Rmarkdown入门教程汇总
Rmarkdown 是 R 语言环境中提供的 markdown 编辑工具,运用 rmarkdown 撰写文章,既可以像一般的 markdown 编辑器一样编辑文本,也可以在 rmarkdown 中插入代码块,并将代码运行结果输出在 markdown 里。R Markdown 格式,简称为 Rmd 格式, 相应的源文件扩展名为.Rmd。输出格式可以是 HTML、docx、pdf、beamer 等。
庄闪闪
2021/04/08
9K0
Dinosaurus_Island_Character_level_language_model_final_v3b
Welcome to Dinosaurus Island! 65 million years ago, dinosaurs existed, and in this assignment they are back. You are in charge of a special task. Leading biology researchers are creating new breeds of dinosaurs and bringing them to life on earth, and your job is to give names to these dinosaurs. If a dinosaur does not like its name, it might go berserk, so choose wisely!
列夫托尔斯昊
2020/08/25
2.4K0
Dinosaurus_Island_Character_level_language_model_final_v3b
ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍[通俗易懂]
  在讲解各编译器之前,必须先了解一下以下这些文件。这些文件在编译器目录下或者编译生成目标平台的可执行程序时经常见到。此外,还需要注意区分 Windows 平台 和 Linux 平台的文件。
全栈程序员站长
2022/06/28
16.8K0
ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍[通俗易懂]
pandoc
前言 Pandoc 是一个开源的文档转换工具 If you need to convert files from one markup format into another, pandoc is your swiss-army knife Pandoc 可以很方便地将文档在主流的文档格式间转化 下面分享一下 Pandoc 的基础安装操作 参考 Installing pandoc Tip: 当前版本 pandoc 2.1 环境 [root@C7-x64 ~]# hostnamectl Static h
franket
2021/08/12
6120
第二十二章 : 格式化输出
In this chapter, we continue our look at text related tools, focusing on programs that areused to format text output, rather than changing the text itself. These tools are often usedto prepare text for eventual printing, a subject that we will cover in the next chapter. Theprograms that we will cover in this chapter include:
砖业洋__
2023/05/06
2980
leveldb介绍「建议收藏」
The leveldb library provides a persistent key value store. Keys and values are arbitrary byte arrays. The keys are ordered within the key value store according to a user-specified comparator function.
全栈程序员站长
2022/07/22
8540
docsify的配置+全插件列表
本篇文章来自好友肥子哥,原文连接:https://xhhdd.cc/index.php/archives/80/
星橙
2022/11/28
8.2K2
docsify的配置+全插件列表
github pages + Hexo + 域名绑定搭建个人博客增强版
概述 前面我们用github pages + Hexo 搭建了一个简单版的个人博客系统,但是里面的内容单调,很多功能不够完善,所以我们需要对yelle 的主题进行优化和完善。基本搭建请访问:http://blog.csdn.net/xiangzhihong8/article/details/53355036 主题配置介绍 从中我们也可以看出,对于主题来讲,大部分可以配置的地方其实都是在这里的。所以我们需要了解一个基本的主题样式。 duoshuo,如果你是打算采用多说评论系统的话,你需要设置这里,但是我个人对
xiangzhihong
2018/02/05
1.4K0
github pages + Hexo + 域名绑定搭建个人博客增强版
推荐阅读
相关推荐
开发必备 | 新手如何快速掌握VSCode编辑器?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档