弱实体集

一张图讲解 弱实体集:

图的含义:

cook:实体集,厨师(假设每个厨师都有编号,可以认为是某个饭店内部的厨师集)
food :实体集,食物。有 名称name 和 第一次被制作的时间time 两个属性
cook_food : 联系集,哪个厨师做了哪个食物

弱实体集weak entity set

定义:

没有足够的属性以形成主码的实体集
解释:图中的food就是弱实体集,名称和第一次被制作的时间都不足以唯一确定一个元组,即没有主码。因为食物名称可能重合,制作时间也可能相同。

相对地,有主码的实体集称为强实体集strong entity set,如cook,主码为cook_id。

弱实体集与强实体集关联才有意义
这个强实体集被称为标识identifying属主实体集owner entity set
将弱实体集与标识实体集相联的联系称为标识性联系identifying relationship,在E-R图中用 双菱形 表示
我们称弱实体集存在依赖于标识实体集,标识实体集拥有弱实体集。

例如:图中cook_food为标识性联系
cook是标识实体集
food存在依赖于cook,cook拥有food。

分辨符discriminator(部分码)

弱实体集没有可以充当主码的属性,它用分辨符来区分属性集合。
在实体集中用 虚下划线 标识(图中蓝色虚线)

food的分辨符是由 name、time 组成。

为什么可以区别:对于一个厨师来说,时间和名称唯一标识了一个食物
(请不要钻牛角尖说同时做两个名字一样的菜,没意思)

弱实体集的主码

标识实体集的主码 + 分辨符
food的主码为{ cook_id, name , time }

  • 30
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值