要将ER图转化为关系模型,就得先弄清楚ER图中的基本元素。
如果不清楚主体、属性、键等元素分别代表什么,那么下面谈转化准则的时候,大家可能会冒出很多问号。
关于ER图的基本元素,此前在这篇文章中做过详细介绍▼
这次只拎其中4个元素(和下面的转化准则密切相关)出来,以下面这张ER图为例进行讲解:

1)实体
实际问题中客观存在的并且可以相互区别的事物称为实体。实体是现实世界中的对象,可以具体到人,事,物。
对应上图中的矩形,如顾客、商品、管理员、平台。
2)属性
实体所具有的某个特性称为属性,在ER图中属性用来描述实体。
对应上图中的椭圆,如上图中的顾客,可以用“昵称”、“账号ID”、“地址”、“电话”等属性进行描述。
3)键
在描述实体的所有属性中,可以唯一标识每个实体的属性称为键。键也是属于实体的属性,作为键的属性取值必须唯一且不能“空置”。
比如:不重复的账号ID,就可以作顾客和管理员的“键”。
4)联系
世界上任何事物都不是孤立存在的,事物内部和事物之间都有联系的。
实体之间的联系通常有3种类型:一对一联系(1:1),一对多联系(1:N),多对多联系(N:M)。
对应上图中的平行四边形,如上传发布、下单、聘用。
接下来正式进入ER图→关系模式转换(同样以上述ER图为例):

1、实体类型的转换
1)将每个实体类型转换成一个关系模式。
2)实体的属性即为关系模式的属性。
3)实体标识符即为关系模式的键。
2、二元联系类型的转换
1)如果实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。
2)如果实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键和联系类型的属性。
这两句话听起来是不是有点绕,看下面这个例子(由于上述ER图没有1:1联系,为方便说明,我们假设平台和管理员之间的联系同时存在1:1和1:N)
对于1:1联系“聘用”,可以在“平台”关系模式中加入管理员账号ID(管理员账号ID是外键);
对于1:N联系“聘用”,则在“管理员”关系模式中加入商标和聘期两个属性(商标是1端的键):
3)如果实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。
对于M:N联系“下单”和“上传发布”,则生成两个新的关系模式:
3、一元联系类型的转换
和二元联系类型的转换类似。
4、三元联系类型的转换
和二元联系类型的转化逻辑基本是一样的:
一元联系和三元联系类型的转换就不举例了,大家可以自己去尝试下。
以上ER图均来自亿图图示模板社区
如果大家想测试自己是否已经理解了ER图到关系模式的转化,可以到模板社区找几张ER图来测试下▼
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211744.html原文链接:https://javaforall.net
