将EER图映射到关系数据库模式

时间:2018-02-27 11:18:42

标签: relational-database entity-relationship

我正准备明天参加考试,并试图解决以前的考试题目。我陷入困境,并且在将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模型很复杂,我正在努力正确地映射它。

非常感谢任何帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

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)

但由于它们具有相同的主键,并且两者都没有被记录(弱实体集总是完全参与其关系,因为它们不能独立识别,而弱实体集也不是't&t; t在关系中是可选的),我们将它们组合成一个关系:

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

我将其作为练习将其绘制为表格架构图。希望这会有所帮助。

相关问题