数据库工程师下午试题3 : E-R图

1.基础知识

ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)不需要出现在ER图中。

ER图的属性(attribute)即数据对象所具有的属性(所具有的列),例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性(unique attribute)和非唯一属性,唯一属性(主键)指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。

ER图的关系/联系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。

 

ER图中关联关系有三种:

1对1(1:1) :1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系


1对多(1:N) :1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

 

多对多(M:N) :多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

 

 

ER的实体还会细分为弱实体和复合实体:

弱实体:一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体。

 

弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形。

 

多值属性(multivalued attribute):一个实体的某个属性可以有多个不同的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性, 用双线椭圆表示。

 

 派生属性(derivers attribute):是非永久性存于数据库的属性。派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示,如下图。

 

派生实体之间用 实线连接,中间画一个小圆圈,比如

员工中包含部门经理和客服, 则

 

 

 

 

 转换关系模式:

(1)若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
(2)若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键和联系类型的属性。
(3)若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。

 

 (1)把三个实体类型转换成三个模式:
   ①系(系编号,系名,电话)
   ②教师(教工号,姓名,性别,职称)
   ③课程(课程号,课程名,学分)
(2)对于1:1联系“主管”,可以在“系”模式中加入教工号(教工号为外键)。对于1:N联系“聘用”,可以在“教师”模式中加入系编号和聘期两个属性(系编号为外键):
   ①系(系编号,系名,电话,主管人的教工号)
   ②教师(教工号,姓名,性别,职称,系编号,聘期)
(3)第三步:对于M:N联系“任教”,则生成一个新的关系模式:
   ①任教(教工号,课程号,教材)
(4)这样,转换成的四个关系模式如下:
   ①系(系编号,系名,电话,主管人的教工号)
   ②教师(教工号,姓名,性别,职称,系编号,聘期)
   ③课程(课程号,课程名,学分,开设的系编号)
   ④任教(教工号,课程号,学分)

 

---------------------

做题技巧:

1 逻辑结构设计(补全关系模式)

可以先把概念模型ER图补充完全,再做此题, 还要注意每个关系模型之间的联系(外键)。不能脱节

区分主键。编号 ,身份证号  ID  单号 这些都是主键

2. 补充ER图,注意找实体,注意限定词  ,XX1的XX2,实体是XX2

posted @ 2020-11-01 11:59  MiQing4in  阅读(987)  评论(0编辑  收藏  举报