|
图2-2-3:一个三元联系集R
�  �
|
��为了把上述三元联系集R转化成二元联系集,首先用一个新的实体集E替代联系集R,并相应建立三个新的联系集:
��RA:联系实体集E和A
��RB:联系实体集E和B
��RC:联系实体集E和C
需要注意的是:如果联系集R有属性,则将这些属性赋给实体集E。否则,为E建立一个特殊的标识属性。因为每个实体集都应该至少有一个属性,以区别实体集中的各个成员。
��接下来针对联系集R中的每个联系(ai,bi,ci),在实体集E中创建一个新的实体ei,eI代表(ai,bi,ci)。然后在三个新的联系集中分别建立新的联系如下:
在RA中插入(ei, ai)
在RB中插入(ei, bi)
在RC中插入(eI, ci)
最后就得到如图2-2-4所示的结果。
|
图2-2-4:将三元联系集转化为二元联系集的结果
��

�� |
��可以将上述过程推广到n元联系集的情况,因此E-R模型中可以只包含二元联系集。那么,是不是在E-R模型中全都使用二元联系集就非常令人满意呢?事实并非如此。第一,对于为表示联系集而创建的实体集,可能不得不为其创建一个标识属性。该标识属性和所需附加的那些联系集增加了设计的复杂程度和对存储空间的需求;第二,n元联系集可以更清晰地表示出几个实体集参与到一个联系集中,而在对应的使用二元联系集的设计中,难以体现这样的参与性约束,破坏了人们对现实世界的认识。
|
|
|