【问题标题】:Multiplicity vs Cardinality多重性与基数
【发布时间】:2013-07-26 12:01:16
【问题描述】:

在谈论数据模型和数据库时,基数这个术语通常用于描述给定集合中允许的元素数量。

UML 通常与 Multiplicity 引用相同的属性。

这两个术语之间有什么区别还是同义词?

【问题讨论】:

    标签: database database-design uml


    【解决方案1】:

    最简单的解释是:

    多重性 = 基数 + 参与度

    基数:表示可能关系的最大数量 某个实体可以参与的事件(简单来说:最多)。

    参与:表示是否所有或仅部分实体事件参与关系(简单来说:至少)。

    例如:

    【讨论】:

    • 请注意,这种表示是针对 UML 的。对于类似 Sql 关系表示,我们将多重元组放在箭头的开头
    • @agenis 你指的是实体关系模型,它不同于面向对象模型。
    【解决方案2】:

    Martin Fowler 在他的网站上谈到了这个话题。引用:

    当数据建模方法谈论关系时,他们使用术语 基数表示有多少实体可以链接在一起。所以 您可能在订单和客户之间有关系并说 关系的基数是一对多的。或者你可能会听到 订单的客户基数是 0 对多。

    UML 避免使用术语基数,而倾向于使用多重性。经常 具有数据建模背景的人对此感到惊讶,因为 基数在数据建模领域得到了如此广泛的应用。

    改变的原因是字典定义 基数是“特定集合或其他元素中的元素数量 分组”(OED)。据此,数据建模的使用实际上是 错误的。在优秀的 UML 参考手册中,Rumbaugh 定义 多重性作为“允许基数范围的规范 值 - 大小 - 一个集合可能假设”。UML 使用多重性 在不同的地方,对于一个属性(关联或属性)以及 显示复合结构中零件的多样性。它是 正式定义为下限和上限。一个关联(UML 相当于数据建模圈中的关系)具有 每个方向的多重性。

    Source

    【讨论】:

      【解决方案3】:

      简单地说:一个多重性由一个较低的和一个较高的基数组成。基数是集合中有多少元素。因此,多重性告诉您集合中允许的最小和最大成员。它们不是同义词。

      【讨论】:

        【解决方案4】:

        感谢您提供上述问题和答案。

        今天早上真的对这些术语感到困惑(咖啡没有帮助)。

        举个例子:

        0-1 ---------- 1-*

        多重性:

        第一个多重性,对于左实体:0-1

        第二个多重性,对于正确的实体:1-*

        第一个多重性的基数:

        较低基数:0

        基数:1

        第二个多重性的基数:

        较低基数:1

        基数:*

        【讨论】:

          【解决方案5】:

          Multiplicity 是对关联对象集合的约束,而 Cardinality 是集合中对象的计数。

          多重性实际上是对基数的约束。

          【讨论】:

          • 这几乎是一个正确的答案(基数不是上限,它是集合中实际存在的元素数量),但它缺少一些内容和参考。请参阅 UML 2.5 § 7.5.3.2 多重性
          • 谢谢先生,我有点困惑,现在我更正了我的答案:-)
          【解决方案6】:

          事件的多样性 = 元素的参与 + 元素的基数。 Participation 表示实体在特定关系中出现的最少次数,而 Cardinality 表示该实体的最大(上限)和最小(下限)出现次数关系中的特定实体。

          仅供参考:https://www.uml-diagrams.org/multiplicity.html

          【讨论】:

            猜你喜欢
            • 2013-12-31
            • 2016-07-19
            • 1970-01-01
            • 1970-01-01
            • 2021-12-31
            • 1970-01-01
            • 2011-12-17
            • 1970-01-01
            • 2012-02-01
            相关资源
            最近更新 更多