案例讲解如何将ER图转化为关系模型

要将ER图转化为关系模型,就得先弄清楚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)实体标识符即为关系模式的键。

①平台(商标,名称,所属公司)
②管理员(账号ID,账号密码,用户名)
③顾客(账号ID,账号密码,昵称,地址,电话,邮箱,备注)
④商品(商品编号,名称,库存量,图片,描述,单价,类型)

 

2、二元联系类型的转换

1)如果实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。

2)如果实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键和联系类型的属性。

这两句话听起来是不是有点绕,看下面这个例子(由于上述ER图没有1:1联系,为方便说明,我们假设平台和管理员之间的联系同时存在1:1和1:N)

对于1:1联系“聘用”,可以在“平台”关系模式中加入管理员账号ID(管理员账号ID是外键);

对于1:N联系“聘用”,则在“管理员”关系模式中加入商标和聘期两个属性(商标是1端的键):

①平台(商标,名称,所属公司,管理员的账号ID)
②管理员(账号ID,账号密码,用户名,商标、聘期)

3)如果实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。

对于M:N联系“下单”和“上传发布”,则生成两个新的关系模式:

①下单(商品编号,顾客账号ID,订单编号,订单数量,下单时间)
②上传发布(商品编号,管理员账号ID,发布时间)

 

3、一元联系类型的转换

和二元联系类型的转换类似。

 

4、三元联系类型的转换

和二元联系类型的转化逻辑基本是一样的:

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

一元联系和三元联系类型的转换就不举例了,大家可以自己去尝试下。

以上ER图均来自亿图图示模板社区

如果大家想测试自己是否已经理解了ER图到关系模式的转化,可以到模板社区找几张ER图来测试下▼

亿图图示模板社区-海量模板在线使用​
edrawmax.cn图标

 

  • 36
    点赞
  • 221
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值