赞
踩
下载
第三部分 基 本 建 模
第8章 关系:联系
在采用E R D建模时,表示实体间的联系是很重要的。同样,在对象建模方法中,标识和
构造类之间的关系也是至关重要的。在 U M L 中有一种比E R D更好的方法来描述对象之间的关
系。
联系是最常见的一种关系类型,这对 E R D 的使用者来说是很熟悉的。在某种程度上说,
联系是最基本的关系。两个类之间的联系关系并不说明类之间是如何交互作用的,而仅仅表
示了两个类之间存在某种联系。它并不说明关系的类型,只是表明存在一种联系而已。
对大多数以前用过 E R D建模的人来说,在 U M L 中给关系指定类型存在一定的困难,因为
在E R D 中,关系的类型只有有限的几种。E R建模者要注意,不要用U M L来做另外一种形式的
E R D 。在后续章节中,我们将讨论更多的精确关系(组合、聚集和概化),本章只介绍最基本
的基数关系类型。
8.1 基数
基数是什么意思呢?不同类中都有很多个
对象。基数指建立一个联系集,该联系集将第
一个类中的一个或多个对象与第二个类中一个
或多个对象相互联系。联系集可以定义为第一
个类的任意子集和第二个类的任意子集。联系
集的概念与传统关系型建模中必须考虑的基数
不同,因为还没有一个足够灵活的标记来说明
这个层次上的概念化。采用基数关系,就定义
了限制联系集构造方式的与数据相关的业务规
则。
E R 建 模 中 一 个 简 单 例 子 ,例 如 部 门
(D e p a r t m e n t )和雇员(E m p l o y e e )之间的一对
多联系,就可以很好地说明这个问题。每个部
门有一个或多个雇员,数据结构如图8 - 1所示。
■ A c c o u n t i n g ( A c c t )部门有三个雇员: A l 、
B e l和C i l 。
■ F i n a n c e ( F i n )部门有两个雇员:D e l和E d 。
■ M a n a g e m e n t ( M g m t ) 部门有三个雇员:
F i l 、G i l和H a l 。 图8-1 Department/Employee 的数据结构
98计计第三部分 基 本 建 模
下载
本例中,在D e p t N o和E m p N o值之间定义的三个对象联系如下:
■ { 1 0 },{ 1 , 2 , 3 }。
■ { 2 0 },{ 4 , 5 }。
■ { 3 0 },{ 6 , 7 , 8 }。
基数关系限制了所涉及的两个子集的大小。例如,一个一对一关系要求每个对象联系中
只有一个元素。
在U M L 中,关系两边的数字表示了相应类中对象的基数。可用的数字有:单个整数(例
如“1”)、整数列表(例如“0 ,1,2 ”)、一定范围内的整数(例如“0 . . 2 ”)或它们的组合(例如
“2 , 4 , 6 , 1 0 . . 2 0 ”)。然而,这样复杂的基数规则是非常少见的。星号“ * ”表示联系中可以有任
意数目的对象,即表示任意非负整数。“1 . . *”表示任意正整数。
为方便起见,图8 - 2说明了标准E R建模中每种关系记号到U M L记号的转换。
建模 建模
图8-2 ER建模中基本关系对应的U M L表示
第 8章 关系:联系计计99
下载
使用U M L甚至可以定义更加有用、复杂的业务规则,下面就是一个例子:
“所有委员会都必须有至少3个、至多2 0个成员。然而,并非人人都必须是委员会的成员,
一个人至多可以参加两个委员会。” 复杂的UML基数关系
采用U M L语法表示的模型如右所示:
这样复杂的基数关系是比较少见的。设计者通常遇
到的大多
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。