E-R模型转化为关系模型

E-R模型转化为关系模型

*讲解部分

涉及到的概念简单提一下,具体查书,可跳过

  1. 实体:客观存在并可相互区别的事物。一个学生,一个部门…
  2. 实体型(矩形)具有相同属性的实体必然具有共同的特征和性值。用实体名及其属性名集合来抽象和刻画同类实体,就成为实体型。简单理解一下可能不一定准确哈,我们都学过类和对象,类中刻画了公有的属性,这里类的概念和实体型蛮相似的。 学生(学号,姓名,性别)是一个实体型,可以理解为,学号姓名性别刻画了学生,学生是类,具体到小明小红是实体。
  3. 属性(椭圆形)实体。实体具有的某一特性成为属性。上述学号、姓名能够刻画实体性的东西
  4. 联系方法(菱形):具体分为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各个属性之间的联系,实体之间的联系通常指的是不同实体集之间的联系。简单提一下实体之间的联系,举个例子,学生和课程为两个实体集,学生选课即为实体集之间的联系。

1.一对一的情况

有两种方法可以解决这个问题。

第一种方法,由各实体的主码构成关系模式,关系模式的主码可以是任意一个尸体集的主码,实体中属性照抄不变即可。

第二种方法:实体中的属性照常写,然后将一边实体集的主码加到另一个实体集对应的关系模式中。

简单记:两头照抄,主码不变,一边主码加到另一边(对应第二种方法,图中的结果2)

在这里插入图片描述

2.一对多的情况

同样是两种方法。

第一种方法:同一对一类似,只不过这个时候我们不能随便确定关系模式的主码了,而必须确定n端实体集的主码为关系模式的主码。

第二种方法:同一对一类似,不同点是,必须将1端实体集的主码加入n端的关系模式中,且n端的主码仍然为该关系模式的主码。

简单记:两头照抄,主码不变,1端主码加到n端

在这里插入图片描述

3.多对多的情况

这个就没有两种方法了,直接简单记吧~

简单记:两头照抄,主码不变,两端主码去新的实体集做主码,新的实体集属性照抄

在这里插入图片描述

*例题部分

直接贴原题了

某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。

(1)根据上述语义画出E-R图;(5分)

(2)将该E-R模型转换为关系模型;(5分)

(要求:1:1和1:n的联系进行合并)

(3)指出转换结果中每个关系模式的主码和外码。(5分)

在这里插入图片描述

(1)

第一问要求根据语义画出E-R图,这里简单提一下吧。

基本思路是从题目中提取中 实体型 属性 联系(以及联系的属性),那么我们分别来抓关键句。

首先是实体型。

工厂的属性有工厂编号、厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。

之后是属性

emmm,上面大白话已经告诉我们了哈,这里省略

再有是联系

多对多和一对多:

  1. 每个工厂生产多种产品,且每一种产品可以在多个工厂生产
  2. 每个工厂聘用多名职工,且每名职工只能在一个工厂工作

最后是联系的属性

  1. 每个工厂按照固定的计划数量生产产品
  2. 工厂聘用职工有聘期和工资

(2)

题目要求:1:1和1:n的联系进行合并

首先把工厂,产品,职工照抄下来总是没错的。这一步我们得到:

工厂(工厂编号,厂名,地址)

产品(产品编号,产品名,规格)

职工(职工号,姓名)

之后,对工厂和生产多对多关系进行处理。这一步我们得。还记得嘛,两边照抄,新增实体集,两边主码共同作为主码,关系属性(计划数量)填上去

工厂(工厂编号,厂名,地址)

产品(产品编号,产品名,规格)

职工(职工号,姓名)

生产(工厂编号,产品编号,计划数量)

最后,对职工和工厂一对多关系进行处理。两头照抄,主码不变,1端主码(工厂编号)加到n端,联系属性照抄。这一步我们得到:

工厂(工厂编号,厂名,地址)

产品(产品编号,产品名,规格)

职工(职工号,姓名,工厂编号,聘期,工资)

生产(工厂编号,产品编号,计划数量)

(3)

上面分析得很详细了哈,

​ 工厂:主码是工厂编号

​ 产品:主码是产品编号

​ 职工:主码职工号

​ 生产:主码是(工厂编号,产品编号)

外码就是那些新加进来的(外面的主码)嘛。。。,对应看一下就明白咯!

end
2019.6.3

  • 33
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值