【发布时间】:2022-06-13 05:14:32
【问题描述】:
UML 类图中的多重关联和聚合是否与关系数据库(实体-关系图)中关系的基数相同?
【问题讨论】:
标签: uml class-diagram polymorphic-associations erd
UML 类图中的多重关联和聚合是否与关系数据库(实体-关系图)中关系的基数相同?
【问题讨论】:
标签: uml class-diagram polymorphic-associations erd
是的,UML 中的多重性概念与 ERD 中的基数相同。主要区别在于术语。
首先,我们需要记住cardinality的原意,即给定集合中的元素个数。
UML 2.5.1 规范解释了第 33 页
集合的基数是该集合中包含的值的数量。 MultiplicityElement 的 multiplicity 指定了它所代表的集合的有效基数。 多重性是对基数的约束,它不能小于为多重性指定的下限且不大于指定多重性的上限(除非多重性是无限的,在这种情况下,上限没有限制)。
简而言之,这里的集合是指一个类的实例,这些实例链接到另一个类的给定实例。所以 UML 定义说,多重性定义了对此类集合的允许大小存在的约束。
有趣的是,Peter Chen,ER 模型的发明者在他的第一篇论文中根本没有提到基数。 Chen 谈到“映射类型1:1、1:n 和n:m 并解释说:
关于每个实体集允许在关系集中的数量个实体的信息是通过在图中指定“1”、“m”、“n”来表示。
我们必须小心术语。在这里,entity 是指某些属性的一组特定值,即一个实例,而 entity set 是指我们通俗地称为“实体”的所有可能实例”。
总而言之,ERD 和 UML 的措辞可能略有不同,但在这两种情况下,都是关于一侧的实例数量可能与另一侧的实例相关的限制。
【讨论】: