【问题标题】:Map EER diagram into a relational database schema将 EER 图映射到关系数据库模式
【发布时间】:2018-02-27 11:18:42
【问题描述】:

我正在准备明天的考试,并已尝试解决该课程之前的考试问题。我被卡住了,在将 EER 转换为关系模式时遇到了问题。问题是:

“将图 1 中给出的 EER 图映射到关系数据库模式中。确保所有键属性和外键都显示在生成的数据库模式中。”

figure 1 - image of EER diagram

我试图解决它,但无济于事。我的解决方案如下:

  • E1(A1)
  • A10(A1, A11, A12, A13)
  • R2E2(A1, A2, A20)
  • R3E3(A1, A2, A3, A30)
  • A51(A4, A5, A51)
  • E6R6(A1, A4, A5, A6, A40, A60)
  • E7(A4, A5, A7, A40)
  • R8(A4, A5, A8, A80)
  • E8(A8)

我强烈怀疑它是错误的,并想知道这个问题的正确逐步答案。我正在尝试学习这种转换,但这个 EER 模型很复杂,我正在努力正确地映射它。

任何帮助将不胜感激。 谢谢

【问题讨论】:

  • 请提供您正在使用的 EER 参考,有很多变化。请告诉我们您认为在哪里可以确定而不是在哪里以及为什么。

标签: relational-database entity-relationship


【解决方案1】:

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

我将把它画成表格模式图作为练习。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2014-05-02
    • 2013-11-07
    • 1970-01-01
    • 2011-11-05
    • 2015-06-25
    • 2012-09-18
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多