��假设primary-key(Ei)代表构成实体集Ei主码的属性集合(在这里,假设所有主码的属性名是唯一的)。不管联系集R有没有自己的属性,对于R的每一个联系(e1,e2,…,en)来说,都可以用如下的属性集合来描述它:
��primary-key(E1)∪primary-key(E2)∪…∪primary-key(En)
因此,上述属性集合就构成了联系集R的一个超码。
��联系集的主码结构依赖于它的映射基数。在多对多的联系集中,它的主码是由参与联系集的所有实体集的主码构成;在一对多(包括多对一)的联系集中,它的主码是由"多"的那一方的实体集主码构成;而对于一对一的联系集,可以使用参与联系集的任何一个实体集的主码作为联系集的主码。如图2-4-1所示,假设customer和account之间的联系集depositor是"一对多"的,则account的主码就是depositor的主码,因为,一个帐号只能对应一个客户。如果联系集depositor是"多对多"的,则depositor的主码就是由customer的主码和account的主码共同构成。
|