EERD 中的全不相交与 U 型

Total Disjoint vs U-type in EERD

提问人:Shahriar 提问时间:11/10/2023 更新时间:11/12/2023 访问量:20

问:

enter image description here这两者有什么区别?我在扩展的 ERD 中看到它们,但我对有什么区别感到困惑。我把两者都读作“车辆要么是汽车,要么是卡车”。U 型(类别)是显示完全脱节的另一种方式,还是使用一种比另一种更有利?

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

数据库设计 数据建模 ERD

评论


答:

0赞 Christophe 11/12/2023 #1

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

  • U 代表联盟。这意味着将超类和 .换言之,车辆的每个实例都是 Truck 的一个实例或 Car 的一个实例,或者两者兼而有之。这个逻辑是基于集合论的,因为实体对应于集合。VehicleTruckCar
  • D 代表 脱节。这意味着 Vehicle 类可以专门化为 a 或 a,但实例必须是其中之一(同一 D 下的子类之间没有重叠)。事实上,当将更传统的 IsA 与多个类一起使用时,会导致歧义,即子类的元素是否可以两者兼而有之,或者它们是否互斥。TruckCar

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