44

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

UML 通常指与Multiplicity相同的属性。

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

4

6 回答 6

30

最简单的解释是:

多重性 = 基数 + 参与度

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

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

前任:在此处输入图像描述

于 2017-12-02T08:29:15.877 回答
28

Martin Fowler 在他的网站上谈到了这个主题。报价:

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

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

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

来源

于 2013-07-26T12:01:36.160 回答
23

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

于 2013-07-26T14:16:23.853 回答
6

谢谢楼上的问题和解答。

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

给出下面的例子:

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

多重性:

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

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

第一个多重性的基数:

较低的基数:0

基数:1

第二个多重性的基数:

较低的基数:1

基数:*

于 2016-12-05T16:24:17.093 回答
1

多重性是对关联对象集合的约束,而基数集合中对象的计数。

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

于 2017-12-22T05:36:26.973 回答
0

事件的多重性 = 元素的参与度 + 元素的基数。 参与是指实体在特定关系中出现的最少次数,而基数是指特定实体在关系中出现的最大(上限)和最小(下限)次数。

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

于 2020-04-04T03:00:01.190 回答