【问题标题】:Ternary Equivalency UML三元等价UML
【发布时间】:2021-06-03 16:58:09
【问题描述】:

[三元]

[等效]

大家好,我需要知道这两个连接是否相似,我怀疑它们不是,但我不知道原因。 非常感谢任何帮助;D

【问题讨论】:

  • 我需要知道这两个连接是否相似不,它们不同。而且我认为两者都不正确。
  • 有什么区别?
  • 第一个方案包含 3 个实体,第二个方案 - 4 个实体。
  • @Akina 你错了。以上是替代表示。
  • @qwerty_so 第一个方案没有,例如,说明员工在一个项目中可能只有一个角色的地方。

标签: mysql sql database uml ternary


【解决方案1】:

详细阐述qwerty_so 的出色回答:

  • 三元关联表示EmployeeProjetRole之间存在联系:

    关联声明其类型符合或实现相关类型的实例之间可以存在链接。链接是一个元组,每个关联的 memberEnd 都有一个值,其中每个值都是一个实例,其类型符合或实现末尾的类型。

    此外:

    当关联的一个或多个端点具有 isUnique=false 时,可能有多个链接关联同一组实例。在这种情况下,链接除了它们的最终值之外还带有一个额外的标识符。

  • 二进制关联集表明有一个类Project_Participation 与所有其他类都有链接。由于它只是二进制关联,因此链接是对的。然而,使用传递闭包,我们可以从组合这三个类的对元组的集合中推导出来。所以第二个模型至少和第一个模型一样具有表现力。

但是,这两个模型并不完全等价。有一些细微的差别:

  • 第二个模型允许更高的精度。例如,您可以分别在每个关联上添加唯一性和排序。 “分而治之!”
  • 在第二个模型中,Project_Participation 可以具有属性和操作,而在第一个模型中,这只有在菱形是关联类的情况下才有可能。

从实际的角度来看,这两种模型都会导致非常相似的实现。逆向工程通常不允许区分两者。

所以是的,它非常相似。但不完全等价。

【讨论】:

  • 只要你在身边,我总是可以放松并留在 tl;dr 一边,想出血淋淋的细节 ;-)
【解决方案2】:

菱形符号匿名绑定三个连接的类并将它们设置为相关。关联类是 2ary。以上是3ary。

下面的图片给了钻石一个有意义的名字,并更好地解释了上面的图表。还有 n 元关系,显然有 n 个关联。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    相关资源
    最近更新 更多