在谈论数据模型和数据库时,术语基数通常用于描述给定集合中允许元素的数量。
UML 通常指与Multiplicity相同的属性。
这两个术语之间有什么区别还是同义词?
在谈论数据模型和数据库时,术语基数通常用于描述给定集合中允许元素的数量。
UML 通常指与Multiplicity相同的属性。
这两个术语之间有什么区别还是同义词?
Martin Fowler 在他的网站上谈到了这个主题。报价:
当数据建模方法谈论关系时,他们使用术语基数来表示有多少实体可以链接在一起。因此,您可能在 order 和 customer 之间建立了关系,并说这种关系的基数是一对多的。或者您可能听说订单的客户基数是 0 对多。
UML 避免使用术语基数,而倾向于使用多重性。具有数据建模背景的人通常对此感到惊讶,因为基数已在数据建模领域广泛使用。
更改的原因是基数的字典定义是“特定集合或其他分组中的元素数量”(OED)。据此,数据建模的使用实际上是错误的。在优秀的 UML 参考手册中,Rumbaugh 将多重性定义为“一个集合可能假设的允许基数范围的规范 - 大小”。UML 在不同的地方使用多重性,用于属性(关联或属性),也用于显示复合结构中部分的多重性。它被正式定义为下限和上限。关联(UML 相当于数据建模圈中的关系)对于每个方向都有多重性。
简单地说:多重性由下基数和上基数组成。基数是集合中有多少元素。因此,多重性告诉您集合中允许的最小和最大成员。它们不是同义词。
谢谢楼上的问题和解答。
今天早上真的对这些术语感到困惑(咖啡没有帮助)。
给出下面的例子:
0-1 ---------- 1-*
多重性:
第一个多重性,对于左实体:0-1
第二个多重性,对于正确的实体:1-*
第一个多重性的基数:
较低的基数:0
上基数:1
第二个多重性的基数:
较低的基数:1
上基数:*
多重性是对关联对象集合的约束,而基数是集合中对象的计数。
多重性实际上是对基数的约束。
事件的多重性 = 元素的参与度 + 元素的基数。 参与是指实体在特定关系中出现的最少次数,而基数是指特定实体在关系中出现的最大(上限)和最小(下限)次数。