【发布时间】:2013-07-26 12:01:16
【问题描述】:
在谈论数据模型和数据库时,基数这个术语通常用于描述给定集合中允许的元素数量。
UML 通常与 Multiplicity 引用相同的属性。
这两个术语之间有什么区别还是同义词?
【问题讨论】:
标签: database database-design uml
在谈论数据模型和数据库时,基数这个术语通常用于描述给定集合中允许的元素数量。
UML 通常与 Multiplicity 引用相同的属性。
这两个术语之间有什么区别还是同义词?
【问题讨论】:
标签: database database-design uml
Martin Fowler 在他的网站上谈到了这个话题。引用:
当数据建模方法谈论关系时,他们使用术语 基数表示有多少实体可以链接在一起。所以 您可能在订单和客户之间有关系并说 关系的基数是一对多的。或者你可能会听到 订单的客户基数是 0 对多。
UML 避免使用术语基数,而倾向于使用多重性。经常 具有数据建模背景的人对此感到惊讶,因为 基数在数据建模领域得到了如此广泛的应用。
改变的原因是字典定义 基数是“特定集合或其他元素中的元素数量 分组”(OED)。据此,数据建模的使用实际上是 错误的。在优秀的 UML 参考手册中,Rumbaugh 定义 多重性作为“允许基数范围的规范 值 - 大小 - 一个集合可能假设”。UML 使用多重性 在不同的地方,对于一个属性(关联或属性)以及 显示复合结构中零件的多样性。它是 正式定义为下限和上限。一个关联(UML 相当于数据建模圈中的关系)具有 每个方向的多重性。
【讨论】:
简单地说:一个多重性由一个较低的和一个较高的基数组成。基数是集合中有多少元素。因此,多重性告诉您集合中允许的最小和最大成员。它们不是同义词。
【讨论】:
感谢您提供上述问题和答案。
今天早上真的对这些术语感到困惑(咖啡没有帮助)。
举个例子:
0-1 ---------- 1-*
多重性:
第一个多重性,对于左实体:0-1
第二个多重性,对于正确的实体:1-*
第一个多重性的基数:
较低基数:0
上基数:1
第二个多重性的基数:
较低基数:1
上基数:*
【讨论】:
Multiplicity 是对关联对象集合的约束,而 Cardinality 是集合中对象的计数。
多重性实际上是对基数的约束。
【讨论】:
事件的多样性 = 元素的参与 + 元素的基数。 Participation 表示实体在特定关系中出现的最少次数,而 Cardinality 表示该实体的最大(上限)和最小(下限)出现次数关系中的特定实体。
【讨论】: