识别 is-a 关系中的强实体和弱实体

Identifying strong and weak entities in a is-a relationship

在下面的ER图中,我应该找出强实体和弱实体。

据我所知,只有 PERSON 和 INSURANCE_COMPANY 是强实体。

没有医生就不能存在患者(由于最小基数为 1)因此它是一个弱实体。同样,没有 DEPARTMENT 就不能存在 STAFF,反之亦然。因此,它们都是弱实体。既然STAFF是弱实体,那么它的所有子类型(SUPPORT_STAFF、NURSE、DOCTOR)也一定是弱实体吧?

我的理解是否正确,还是我遗漏了什么?

弱实体集不是由存在依赖关系决定的。常规实体集可以完全参与关系,因此也存在对另一个实体集的依赖性。

你要看的是身份。常规实体集由它们自己的属性标识。弱实体集通常部分由另一个实体集标识。

在您的图表中,DEPARTMENT、PERSON、INSURANCE_POLICY 和 INSURANCE_COMPANY 是描述常规实体集的实体关系。这些表中的每一个都有简单的主键(Dept#、PersonID、Policy# 和 Co#,如果我解释正确的话,尽管没有指出主键)。

其他表(STAFF、PATIENT、SUPPORT_STAFF、NURSE、DOCTOR)描述了 Person 的子类型。这些子类型是否是弱实体集是有争议的。 Chen 的原始论文描述了常规实体集和弱实体集,其中没有包含子类型的概念。子类型是子集,而不是单独的实体集。然而,弱实体集在扩展 ER 符号可用之前提供了一种表示子类型的方法(即没有弱键的弱实体集)。在支持子类型化的 EER 模型中,最好使用 "weak entity set" 来仅引用其主键由弱键和另一个实体集的键组成的实体集。这里的典型示例是订单项,通常由 invoice/receipt 编号和行号标识。

在原来的ER模型中,我说你有4个正则实体集,分别对应4个实体关系DEPARTMENT、PERSON、INSURANCE_POLICY和INSURANCE_COMPANY,以及5个弱实体集,对应于图中的 5 个子类型关系。但是,在具有不同子类型概念的 EER 模型中,我认为您有 4 个常规实体集并且没有弱实体集。