如何在ORM(对象角色建模)图中阅读三元关系?

时间:2014-11-06 15:49:45

标签: object-role-modeling

我在下面有一个分配Result的示例。我知道如何阅读二元关系,但图像中标记为红色的三重框让我感到困惑。

在框内斜线之后我们以什么顺序读取这些角色:in,award of?

我假设我们可以通过三种方式阅读此图表:

  • 第一个框学生有单元成绩结果。
  • 第二个方框为单位学生评分
  • 第三个方框单位授予学生成绩奖励(这个没有意义

我们可以再看一遍吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

这不是一个真正有效的ORM图(由Halpin定义),因为:

  1. 所有事实类型都没有读数(而是提供实体类型名称),
  2. 没有显示唯一性约束(每个事实类型必须至少有一个唯一性约束),
  3. 角色谓词显示在角色框内(不是ORM练习),
  4. 即使它(和其他事实类型)具有实体名称,三元也不会被显示为物化。
  5. 识别角色必须是强制性的,但不会显示。
  6. 此处,Result是实体类型的名称。这种实体类型客观化了三元事实类型,没有提供任何名称和读数。如果要为事实类型命名,则可以使用合适的名称" Grading",以及对分配结果的操作的引用。同样的问题适用于其他事实类型;这个图的创建者对于事实类型和可能使该事实类型客观化的对象之间的区别感到困惑。例如,事实类型"学生识别"是一个名词,但是事实类型(如果它要被命名)应该被称为"学生识别",命名行动而不是客体化。类似于等级奖励(等级编码),单位身份(单位命名)。

    但是,不考虑这些语法差异,结果事实类型的可能读数是"学生达到单元等级#34;"等级被授予学生单元"和类似。在CQL中,表示客观化是指" 每个结果某些学生某些等级某些 em>单位, 等级被

    结果事实类型角色内的谓词文本没有很好地定义。这里的意图是将这些谓词应用于Result实体和扮演各自角色的对象之间的关系。这三种二元事实类型(称为链接事实类型)未显示,但是被客体化所暗示。我建议对这些链接事实类型进行以下阅读:

    1. 结果将颁发给学生/学生收到的结果
    2. 结果是等级/等级适用于结果
    3. 获得单位/单位结果
    4. 的结果

      通常情况下,链接事实类型和相关读数未显示,工具提供的隐含读数是"参与",例如"学生参与结果&#34 34;,"结果是学生"。您可以看到为什么提供自定义读数会更好。

      我建议您获取一份Terry Halpin的书"信息建模和关系数据库"并从中学习,因为很清楚你的导师有非标准的理论和实践。