��那么,前面的两个定义之间到底有什么差别呢?前一种情况隐含说明了通常情况下每个员工只有一个电话号码与之相关联(当然,这也不是完全正确的,因为还可以把telephone-number看成是一个多值属性);而第二种情况则表明每个员工可以有多个电话号码(包括0个)。因此,第二个定义比第一个更通用。即使每个员工正好就与一个电话号码相联系,而当有多个员工共用一个电话时,第二个定义更确切。但即使这样,在实际的应用中也很少有人使用第二个定义,为什么呢?第一个定义可能有数据冗余,浪费存储空间,且容易导致数据不一致;第二个定义更接近于现实世界,但不太符合人的思维习惯,查询起来似乎不是很方便,需要通过链接或指针,即员工与电话之间的联系,多了一个中间环节。虽然实体集和属性不是绝对的,但什么可作为属性?什么可作为实体集?这很难回答。主要还是取决于被建模的现实世界的实际情况以及所讨论的属性的相关语义。
��
|