0

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

我们何时以及以什么顺序阅读框内斜线后的那些角色:in,award of?

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

  • 第一个框学生有单元的成绩结果。
  • 给学生的第二个方框等级
  • 第三箱单元授予学生成绩奖(这个没有意义

我们可以用更多的方式阅读它吗?

在此处输入图像描述

4

1 回答 1

3

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

  1. 所有事实类型都缺少读数(提供了实体类型名称),
  2. 没有显示唯一性约束(每个事实类型必须至少有一个唯一性约束),
  3. 角色谓词显示在角色框内(不是 ORM 实践),
  4. 尽管三元(和其他事实类型)具有实体名称,但它并未显示为对象化。
  5. 识别角色必须是强制性的,但未显示。

这里,Result 是实体类型的名称。该实体类型对象化了三元事实类型,没有为其提供名称和读数。如果您想命名事实类型,一个合适的名称可能是“评分”,参考分配结果的操作。同样的问题也适用于其他事实类型;该图的创建者对事实类型和可能使该事实类型客观化的对象之间的区别感到困惑。例如,事实类型“学生身份”是一个名词,但事实类型(如果要命名)应该称为“学生身份”,命名行为而不是对象化。同样对于等级奖励(Grade Coding)、单位标识(Unit Naming)。

然而,撇开这些语法差异不谈,Result 事实类型的可能预期读数是“学生取得的单位成绩”、“学生单位取得的成绩”等。在 CQL 中,通过说“每个结果某个学生在某个单元中取得某个成绩的地方,成绩被授予那个学生在那个单元中”来表示对象化。

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

  1. 结果被授予学生/学生收到的结果
  2. 结果是等级/等级适用于结果
  3. 结果被授予单位/收到的单位结果

通常不显示链接事实类型和相关读数,工具提供的隐含读数是“参与/属于”,例如“学生参与结果”、“结果属于学生”。您可以看到为什么提供自定义读数会更好。

我建议你买一本 Terry Halpin 的书“信息建模和关系数据库”并从中学习,因为很明显你的导师有非标准的理论和实践。

于 2014-11-06T22:45:32.520 回答