前言
前一堂课我们深入研究了E-R模型的画法和要点,学习E-R模型肯定是为了给数据库表格设计提供帮助。数据库表格设计就是关系模式设计,数据库表就是关系模式的实例化。所以本堂课,我们来看E-R模型如何转为关系模式。
转化原则
转化步骤
转化原则
关系(关系模式/表格架构)=实体转关系+联系转关系(两种表格类型)
一、实体--->关系
1、强实体集:实体集名称就是表格名称;实体集属性就是表格列;主码和实体集相同
2、弱实体集:实体集名称就是表格名称;实体集属性+依赖强实体集主键作为表格列;主码为弱实体集部分码+强实体集主码
二、多样实体处理
上述实体--->关系的处理原则在这里仍然适用,但是在遇到存在复合属性/多值属性的实体时。我们需要一些特殊的处理:
1、多值属性:创建新的关系;关系属性为所在实体主码+多值属性;主码为所在实体主码+多值属性
2、复合属性:复合属性最底层的所有属性就是关系模式的列
例如:
小练习:
三、联系--->关系
1、联系转关系:每一个联系转为一张表也就是一个关系;表的属性为参与联系实体的主码+联系自身的属性
2、特殊情况:a.如果在不同的实体集中出现了主码属性名称不唯一的情况,应该以实体的名字加上属性的名字形成唯一的属性名;b.如果一个实体集不止一次地参加了某个联系集,则角色名可代替实体集的名字形成唯一的属性名
合并原则
在把联系和实体集都转化为关系之后,我们需要利用合并原则把关系进一步简化。
合并只发生在联系的关系和实体集的关系之间
二元m:1联系(多对一联系)
原则:在二元多对一联系中,联系转化的表可以和“多端”实体转化成的表进行合并
示例:
二元1:1联系(一对一联系)
原则:联系转化的表可以与任一端实体转化成的表进行合并;二元一对一联系不能导致相关实体转化成的表合并
示例:
二元m:n联系(多对多联系)
原则:将联系定义为新的关系,这个关系不能与实体转化成的关系进行合并
示例:
实体集内部联系
原则:只有一对多、一对一的联系能够进行合并;合并基本原则和前面的二元联系都是相同的;合并后属性的名称可能发生变化
示例:
多元联系
原则:联系转化的表和实体转化的表不能进行合并
示例:
合并原则小练习
题目一
本题中有三个实体集,两个联系,所以一开始可以写出五个关系;讲授联系是多对多的联系,所以不能合并;上课联系是多元联系,所以不能合并。
题目二
由于有两个联系都叫管理,本题将职工和职工间的联系“联系”改名为“领导”,该联系是能够合并到职工表中的
总结
本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。
本篇已经码了三个多小时了,算是简单入门E-R模型转关系模式的文章,下节课第八周第一堂我们来深入讲讲E-R模型的拓展特性,以及如何通过E-R模型方法来设计数据库
如果能帮助到大家,大家可以点点赞、收收藏呀~