EERD 中的完全不相交与 U 型

问题描述 投票:0回答:1

这两者有什么区别?我在扩展 ERD 中看到了它们,但我对它们之间的区别感到困惑。我把两者都读为“车辆要么是汽车,要么是卡车”。 U 型(类别)是显示完全不相交的另一种方式吗?或者使用一种方式相对于另一种方式有什么优势吗?

我在网上找到的唯一的东西是:如果超类有许多共同属性,请选择层次结构表示

database-design data-modeling erd
1个回答
0
投票

有多种不同的 EERD 格式。您所描述的,而不是使用简单的 IsA 专业化肯定不是最常用的:

  • U 代表Union。这意味着
    Vehicle
    将超类
    Truck
    Car
    分组。换句话说,车辆的每个实例都是卡车的实例或汽车的实例或两者的实例。该逻辑基于集合论,因为实体对应于集合。
  • D 代表不相交。这意味着类 Vehicle 可以专门化为
    Truck
    Car
    ,但实例必须是其中之一(同一 D 下的子类之间没有重叠)。事实上,当将更传统的 IsA 与多个类一起使用时,会导致歧义,即子类的元素是否可以同时存在,或者它们是否相互排斥。

您的示例将相同的方法应用于两种不同的情况。由于差异非常微妙,因此无助于理解。在第一种情况下,Vehicle 只是 Truck of Car 的同义词,它们的定义与 Vehicle 无关。在第二种情况下,卡车和汽车被定义为车辆的专业化。车辆可以拥有一个由所有专业化继承的通用部件。

© www.soinside.com 2019 - 2024. All rights reserved.