E-R图转换为关系模型

微笑、不失礼 提交于 2019-12-16 01:44:18

转自:https://www.cnblogs.com/yijiahao/p/11707183.html

E-R模型如何转换成关系模型,这里我们分成三种情况进行讲解,分别是一对一,一对多和多对多。

1.一对一的情况:

  有两种方法解决这个问题。第一个方法:可以单独对应一个关系模式,由各实体的主码构成关系模式,而关系模式的主码可以是任一个实体集的主码。而实体中属性照常写就可以了。第二个方法:实体中的属性照常写,然后将一方实体集的主码加到另一方实体集对应的关系模式中。下面举个例子我们来看一下:

 

         在这个例子中,利用方法一,先将两个实体正班长和班级的属性照着写下来,然后将关系模式“属于”的属性写出来——即两边实体的主码,其中关系模型“属于”的主键可以是两端实体集的任一主码。利用方法二,也是先将两端实体的属性照着写下来,然后注意这一点,将一端实体的主码加到另一端实体的主码中,图例中就是将“班级”实体的主码加入到“正班长”关系属性中。

 

2.一对多的情况:

  这种情况可以跟一对一的情况对比着学习。第一个方法:同一对一的方法一是差不多的,只是对应的关系模式中,其主码不再是任一实体的主码就可以,而是必须指定n端的主码为关系模式的主码。第二个方法:同一对一的方法二也是差不多的,但是值得强调的是,必须将1端的主码加到n端的关系模式中,而且n端的主码仍然为该关系模式中的主码。同样,我们也来举个例子。

 

 

          如图,在方法一中,关系模式的主键是n端学生实体的主键。在方法二中,将一端对应的实体主键“班级编号”加入到了对应n端“学生”的关系模式中,并且,n端的主码仍然为该关系模式的主码。

 

3.多对多的情况:

  对于多对多的联系,似乎是这三种类型中最简单的一个了。其转换原则为:每个实体集对应一个关系模式,对于多对多的联系,其单独对应一个实体集,该实体集的主码由各实体集的主码共同构成。我们同样来看一个例子。

       在上图这个例子中,每个实体集都对应一个关系模式,其联系“选课”也对应一个关系模式,这个关系模式的主码便是两端实体集的主码。关于E-R模型转化成关系模型我们就学到这里,其实很简单,只要掌握了要领,做几个例子,就会很好的上手,就会达到掌握的目的了。

 

 

 

 

学生:学号,姓名,性别,年龄

课程:课程编号,课程名,教师号

选修:学号,课程编号,分数

教师:教师编号,教师名,职称

参加:教师编号,项目编号

项目:项目编号,项目名,项目负责人

 

 

 

职工:职工号,姓名,年龄,职称

仓库:仓库号,面积,电话号码

工作:职工号,仓库号

库存:仓库号,零件号,库存量

零件:零件号,名称,规格,单价,描述

供应商:供应商号,姓名,地址,电话号码,账号

供应:项目号,供应商号,零件号,供应量

项目:项目号,预算,开工日期

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!