一、一对一
一个公司有一个经理,一个经理也只能在一个公司进行任职,所以公司和经理之间是一对一的关系。公司(公司编号,公司名,地址,电话),经理(职工编号,姓名,性别,电话)。经理任职会产生任职日期属性。

1. 将联系转换成一个独立的关系模式,关系模式的名称为联系的名称。联系的属性包括该联系的属性和关联两个实体的主键,联系的主键为任意两个关联实体的主键之一。
2.将联系的属性归并到关联的两个实体的任一方,并将那一方实体集的主键加过来作为外键。
转换为关系模式:
1、 公司(公司编号,公司名,地址,电话)
经理(职工编号,姓名,性别,电话)
任职(公司编号,职工编号,任职日期) 主键为公司编号或者是职工编号
2、
(1)公司(公司编号,公司名,地址,电话,职工编号,任职日期) 主键为公司编号,外键为职工编号
经理(职工编号,姓名,性别,电话)
(2)公司(公司编号,公司名,地址,电话)
经理(职工编号,姓名,性别,电话,公司编号,任职日期) 主键为职工编号,外键为公司编号。

二、一对多
一个部门中有多个员工,但是每个员工只能属于一个部门,所以部门和员工之间的关系就是一对多。部门(部门号,部门名称,电话),员工(员工号,姓名,电话)。
1. 将联系转换一个独立关系模式:名称为联系的名称,关系模式的属性两个实体的主键,联系的主键是多方(n方)实体集的主键。
2.将联系的属性和1端的主键加入多方(n方)
1、 1方: 部门(部门号,部门名称,电话)
n方: 员工(员工号,姓名,电话)
隶属(员工号,部门号) 主键是n方
2、 部门(部门号,部门名称,电话)
员工(员工号,姓名,电话,部门号) 主键为员工号,外键为部门号

三、多对多
多对多的联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的所有实体集的主键和自身的属性,关系模式的主键由所有关联的实体集共同组成。
学生(学号,姓名,性别)
课程(课程号,课程名称,授课老师)
选课(学号,课程号,成绩) 主键为学号和课程号的组合,外键为课程号,学号
Example:
下面是教学管理的一个可能的E-R图。图中,有三个实体类型:系、教师和课程;有四个联系类型:主管、聘用、开设和任教。根据转换算法,把该图转换成关系模式集的步骤如下:

第一步:
把三个实体类型转换成三个关系模式(注意关系模式的表示方法):
系(系编号,系名,电话)
教师(教工号,姓名,性别,职称)
课程(课程号,课程名,学分)
第二步:
对于1:1联系,可以在“系”模式中加入教工号(教工号为外键)。
对于1:N联系“聘用”,可以在“教师”模式中加入系编号和聘期两个属性(系编号为外键);
对于1:N联系“开设”,可以在“课程”模式中加入系编号(系编号为外键)。这样第一步得到的三个模式改变成如下形式(注意:外键通常使用波浪线表示):
系(系编号,系名,电话,主管人的教工号)
教师(教工号,姓名,性别,职称,系编号,聘期)
课程(课程号,课程名,学分,系编号)
第三步:
对于M:N联系“任教”,则生成一个新的关系模式:
任教(教工号,课程号,教材)
这样,转换成的四个关系模式如下:
系(系编号,系名,电话,主管人的教工号)
教师(教工号,姓名,性别,职称,系编号,聘期)
课程(课程号,课程名,学分,系编号)
任教(教工号,课程号,教材)
本文详细介绍了如何将E-R图转换为关系模式,涵盖了三种基本关系:一对一、一对多和多对多。通过实例展示了转换过程,包括联系的属性处理和外键的设置,帮助理解数据库设计中的关键步骤。
5985

被折叠的 条评论
为什么被折叠?



