技术开发 频道

利用UML进行实体关系建模

    特化和泛化

    核心 ER 模型只定义了实体类型间的基本关系。虽然利用基本的实体和关系就可以很容易地表示商业机构中的大多数简单数据结构,但是技术应用要求基于实体类型间的相似点和不同点的更复杂的结构。

    特化和泛化

    特化和泛化的目的在于重用与实体类型关联的属性和行为。

    特化用于定义代表一个大型实体类型的一个特定部分的实体类型。特化后的实体类型从父实体类型继承了结构和行为,比如业务规则。然而,虽然特化后的实体类型扩展了父结构或类型,但是这决不是说它小于父类型。

    比如,Employee 是实体类型 Person 的一个特化,它需要实体类型 Person 的所有属性和关系。另外还有一种叫做 Customer 的实体类型,它也是实体类型 Person 的一个特化。这两种实体类型都具有 Person 的属性,它们被看作 Employee 或 Customer 的属性。因此在我们看 Customer 时,看到的是在实体类型 Person 和实体类型 Customer 中指定的所有属性。

    泛化是正好相反的工作流。泛化实体类型(或者父类型)代表所有子类型的共同结构和行为,并且包含了来自子实体类型的所有共同属性。子实体类型具有父属性的所有内容,并且还拥有自己的属性。

    泛化过程找出共同结构并在父实体类型中抽象出来。父实体类型通常在比较实体类型和简化模型时的重构阶段被找到。

    虽然泛化仅利用面向对象或者对象关系数据库就可以直接实现,但是泛化也可以通过使用外键的任何关系数据库直接实现。

    图 9 实体类型 Customer 和实体类型 Employee 被泛化为人实体类型;反向过程就是特化

0
相关文章