EER 建模有很多变体,因此我可能不会以与您相同的方式解释图表。如果您包含您正在使用的 EER 符号的参考,这将有所帮助。我将解释我的解释,以便您可以将其与您的进行比较。我将使用您的关系符号的变体——我将写 PK,而不是用粗体表示主键;和 UQ 为独特的。此外,我将 FK 约束表示为子集,例如E2.A1 ⊆ E1.A1。我们开始:
E1是具有主键A1和复合属性A10(由A11、A12和A13组成)的常规实体集。使用复合属性,我们只需要表示组成部分。
E1 (A1 PK, A11, A12, A13)
R2是弱实体集E2的识别关系,使得A2成为弱键,所以E2由(A1,A2)识别。我们可以分别映射 R2 和 E2:
R2 (A1 PK, A2 PK, A20)
E2 (A1 PK, A2 PK)
但是由于它们具有相同的主键,并且没有另一个就不能记录(弱实体集总是完全参与它们的关系,因为它们不能独立识别,并且弱实体集在关系中不是可选的),我们将它们组合成一个关系:
R2E2 (A1 PK, A2 PK, A20)
R2E2.A1 ⊆ E1.A1
这里的 EER 符号有点不清楚。我希望看到弱实体集通过双(总)参与线连接到它们的识别关系,弱键用虚线下划线。假设我解释正确,R3 是弱实体集 E3 的另一个识别关系。通过与上面相同的逻辑,我们得到:
R3E3 (A1 PK, A2 PK, A3 PK, A30)
R3E3.(A1,A2) ⊆ R2E2.(A1,A2)
E4 是一个正则实体集:
E4 (A4 PK, A40)
E5 是 E4 的子类型。我质疑包含 PK 属性 A5,因为子类型是其超类型的子集,我希望 E5 继承 A4 作为其 PK。好吧,让我们使用给定的 A5,我们将添加一个 FK 约束以确保 A5 ⊆ A4。
E5 (A5 PK)
E5.A5 ⊆ E4.A4
多值属性 A51 需要自己的表来记录可能分配给 A5 中实体的多个值中的每一个:
E5A51 (A5 PK, A51 PK)
E5A51.A5 ⊆ E5.A5
E6 和 E7 是 E4 的不相交的亚型。 E6 很简单:
E6 (A4 PK, A6)
但让我们看看 R6。这是所有 E6 都必须参与的一对一关系。从技术上讲,我们只需要
R6 (A1 UQ, A4 UQ, A80)
但我们需要选择其中一个属性作为 PK。 A4 是更好的选择,因为它允许我们结合 R6 和 E6 的关系,从而确保在没有其他 FK 约束的情况下完全参与:
R6E6 (E4 PK, A4 UQ, A6, A80)
R6E6.E4 ⊆ E4.A4
E7 和 E8 很简单:
E7 (A4 PK, A7)
E7.A4 ⊆ E4.A4
E8 (A8 PK)
R8 是由 E7 和 E8 确定的多对多关系:
R8 (A4 PK, A8 PK, A80)
R8.A4 ⊆ E7.A4
R8.A8 ⊆ E8.A8
所以,总而言之,我们有以下关系:
E1 (A1 PK, A11, A12, A13)
R2E2 (A1 PK, A2 PK, A20)
R3E3 (A1 PK, A2 PK, A3 PK, A30)
E4 (A4 PK, A40)
E5 (A5 PK)
E5A51 (A5 PK, A51 PK)
R6E6 (E4 PK, A4 UQ, A6, A80)
E7 (A4 PK, A7)
E8 (A8 PK)
R8 (A4 PK, A8 PK, A80)
以及外键约束:
R2E2.A1 ⊆ E1.A1
R3E3.(A1,A2) ⊆ R2E2.(A1,A2)
E5.A5 ⊆ E4.A4
E5A51.A5 ⊆ E5.A5
R6E6.E4 ⊆ E4.A4
E7.A4 ⊆ E4.A4
R8.A4 ⊆ E7.A4
R8.A8 ⊆ E8.A8
我将把它画成表格模式图作为练习。希望这会有所帮助。