如何把ER模型转换为关系模型

文章出处:http://blog.csdn.net/HaoDaWang/article/details/78098937?locationNum=4&fps=1
如何把ER模型转换为关系模型web

这是数据库工程设计进行到逻辑设计的一重大环节,简单的说,若是概念设计是用ER模型, 整合为全局的ER模型,那么在逻辑设计这块, 主要任务就是把ER模型转换为关系模型。数据库

转换只需知道三个转换准则:数据库设计

1:1svg

遇到1:1 关系的话在两个实体任选一个添加另外一个实体的主键便可。.net

1:N设计

1:N 遇到 1:N 关系的话在N端添加另外一端的主键,假若有学生和班级两个实体,一个班级能够容纳多个学生,可是一个学生只能选择一个班级, 所以班级和学生是1:N的关系,如今要转换为关系模型, 咱们只需在学生的这端加上班级的惟一标识便可,这样作的缘由是,由于一个学生只能有一个班级,班级是相对学生惟一的。xml

N:Mblog

遇到N:M咱们须要将联系转换为实体,而后在该实体上加上另外两个实体的主键,做为联系实体的主键,而后再加上该联系自身带的属性便可。例若有学生和老师两个实体, 一个学生能够由多名老师来授课,一名老师也能够授课多名学生,它们是M:N关系的,假如联系为授课,该联系上有成绩属性,所以当咱们把它转换为关系模型时,咱们把联系转换为联系实体,并添加学生实体的主键(学号)和教师实体的主键(教师编号)做为本身的主键,值得注意的是,授课实体的外键分别是学号和教师编号,可是它的主键是(学号,教师编号),另外它还拥有本身的一个属性成绩。开发

1:1:Nget

这是三元联系的对应关系,可是当转换为关系模型时,和1:N的状况是差很少的。咱们只需将N端添加另外两端的主键便可。

M:N:P

这种三元联系的三种多对应关系,看上去很复杂,其实转换起来并非那么复杂了,咱们要作的仅仅是将其中的联系转换为联系实体,而后在联系实体上添加M端N端P端的主键,而后加上联系实体自身的属性,就好了。

例子:

说了这么多看个小例子。

这是一份关于商店商品仓库的ER图。

先看仓库和商品之间是M:N的关系,因而咱们首先想到的应该是把联系 库存转换为库存实体。
库存 (仓库号,商品号,日期,库存量)
而后是商品实体和仓库实体
商品(商品号,商品名,单价)
仓库(仓库号,仓库名,地址)

除此以外仓库和商品还有一个供应关系,一样是M:N关系:
供应 (仓库号,商品号 ,月份,月供应量)

在上图的商店和仓库之间的关系可能写漏了,可是它们应该也是M:N的关系,一个商店能够被多个仓库供应,一个仓库也能够供应多个商店。上面已经建立了供应实体,如今只需在供应实体中假如商店号便可,也就是商店实体的主键。

供应(仓库号,商品号,商店号 ,月份,月供应量)
商店(商店号,商店名,地址)

总结

至此,转换关系模型也完成了,固然这只是个例子,实际的开发中,咱们可能会遇到各式各样奇怪的需求,这就更要求咱们作好概念设计的环节,对后来的数据库设计和维护都有好处。ER图的好坏,始终是数据库设计的重要一节。