多重性与基数

Sam*_*les 29 database database-design uml

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

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

这两个术语之间是否有任何差异,或者它们是同义词吗?

LMe*_*yer 21

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

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

UML避免了基数这个术语更喜欢使用多重性.通常,具有数据建模背景的人对此感到惊讶,因为基数在数据建模圈中被广泛使用.

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

资源


Jim*_* L. 16

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


Sul*_*_28 11

最简单的解释是:

多重性=基数+参与

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

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

例如: 在此输入图像描述

  • @agenis。。。据我了解,在其他视觉图表方法中,多重性也被放置在关联的末尾(相对于导航方向)。[维基百科有一张漂亮的图片](https://en.wikipedia.org/wiki/File:ERD_Representation.svg) 比较了各种符号。 (2认同)

Mat*_*att 5

谢谢你上面的问题和答案。

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

鉴于以下示例:

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

多重性:

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

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

第一个多重性的基数:

基数:0

基数:1

第二个多重性的基数:

较低的基数:1

基数:*