ER图(把ER模型转换为关系模式关系范式概念)

Posted 编程图一乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ER图(把ER模型转换为关系模式关系范式概念)相关的知识,希望对你有一定的参考价值。

关于ER模型的转换,我们只需要记住三个转换准则:
1:1、1:N、M:N

二元联系:

(1)一对一关系(One to One)

映射规则一:当转换为关系模型时,在两个实体任选一个添加另一个实体的主键即可。

例子:
校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。当转换为关系模式时,我们可以在班长关系中添加班级的主键(班级号);或者在班级关系中添加班长的主键(学号)。


(2)多对一关系(Many to one)

映射规则:保留多边(Many-side)E1的所有属性 + 一边(one-side)的主键 + 关系自身的属性到一个扩展(extended)的E1表中。
即当转换为关系模型时,在N端添加另一端的主键和联系的属性。

为什么这么映射?
可以减少数据库的冗余,因为如果是把STUDENT的主键添加到STAFF表中,由于一个STAFF可以对应多个学生,这样子就会出现很多冗余的数据。


一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
当转换为关系模式时,我们得在学生关系中添加班级的主键(班级号)。


(3)多对多关系(Many to Many)

映射规则:取关系两端的实体的主键 + 关系本身的属性
当转换为关系模型时,需要将联系转换为实体,然后在该实体上加上另外两个实体的主键,作为联系实体的主键,然后再加上该联系自身带的属性即可。
如图(c)情况,当我们转换成关系模式时,我们要把“联系名”转换为实体模式,添加另外两个实体的主键,这两个主键合起来为“联系名”的主键,然后添加该联系自带的属性即可。

习题:

数据库范式以及ER图

数据库范式包括第一、第二、第三以及BCNF范式,关于范式的探讨,博主在知乎上看见了一篇很不错的文章,分享文中,这边就不再做阐述。地址:https://www.zhihu.com/question/24696366

在这边列出一些数据库的定义:

1.关系模型:用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。关系模型是由若干个关系模式组成的集合。
2.关系模式:关系模式实际上就是记录类型。它包括:模式名,属性名,值域名以及模式的主键。关系模式仅是对数据特性的描述。
3.关系实例:就是一个关系,即一张二维表格。
4.属性:在关系模型中,字段称为属性。
5.域:在关系中,每一个属性都有一个取值范围,称为属性的值域。
6.元组:在关系中,记录称为元组。
7.候选码:在关系中能唯一标识元组的最小属性集称为关系模式的候选码。
7.主属性:存在于候选码(一个候选码可能是多个属性)中的某一属性。
8.主码:用户选作元组标识的一个候选码为主码。
9.外码:某个关系的主码相应的属性在另一关系中出现,此时该主码在就是另一关系的外码,如有两个关系S和SC,其中S#是关系S的主码,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外码。

 

1NF:属性没有再分(例如人有电话号码的属性,里面存了一个串,用的时候要求前半部是家庭号码,后半部是公司号码,。就不符合1NF)

2NF:非主属性直接完全依赖或间接完全依赖候选键。(不可部分依赖候选键)(不符合就会数据冗余,更新异常,插入异常,删除异常)

3NF:非主属性直接完全依赖候选键。(不符合就会数据冗余,更新异常,插入异常,删除异常)

BCNF:非主属性直接完全依赖候选键,主属性对不包含它的键是直接完全函数依赖。

 

数据库设计可分为三步:

1. 画E-R图

2. 将E-R图转化为某一模式的数据(关系模式)

3. 根据范式分析调整关系模式,使其符合某一范式

对这个设计流程,博主在另外一篇博文上找到了几个例子来帮助大家理解,地址:http://wenzongliang.iteye.com/blog/2204577

以上是关于ER图(把ER模型转换为关系模式关系范式概念)的主要内容,如果未能解决你的问题,请参考以下文章

数据库范式以及ER图

E-R模型中实体和属性的概念?

数据库模型图和ER图区别是啥?

求解:怎么将r软件内的数据转换为excel数据?

E-R模型就是关系模型吗??

数据库期末复习:SQL语句范式的定义和判断ER图转关系模式