目标:本文主要介绍继承联系定义及使用。
一、 定义
实体之间除了我们之前所讲的联系外,还存在分类关系、继承关系。在 CDM中我们统称分类关系、继承关系为继承联系。
通过特殊化或概化方法产生的实体类型之间的联系称为继承联系。
特殊化:在实体集内部分组并把这些分组存放在不同的实体类型中的过程称为实体集的特殊化。
概化:从多个实体集的公共属性中抽象出一个公共实体类型的过程为实体集的概化。
继承联系的一端是具有普遍性的实体集,为父实体集,另一端连接的是具体特殊的一个或多个实体集,为子实体集。
例如:“银行账户”是“借记卡账户”与“信用卡账户”的父实体,相反“借记卡账户”与“信用卡账户”是“银行账户”的子实体。
另外在继承联系中,还可以分为互斥性继承联系 和非互斥性继承 联系。
互斥性继承联系:父实体中的一个实例只能在一个子实体中。例如:“帐户”主实体下的“个人账户”与“公司账户”两个子实体之间的联系是互斥的。
非互斥性继承联系:父实体中的一个实例可以在多个子实体中。例如:“职工”父实体下的“干部”与“教师”子实体之间属于非互斥继承联系,教师有可能也是干部,干部有可能也是教师。
这里我就不再图示了,望大伙要认真理解概念。
二、 创建继承联系
注意: PowerDesigner 15 的版本,工具栏上的 Inheritance 图标默认是禁用的。打开方法如下:
Tools->Model Options->Model Settings->Notation 设为“ E/R+Merise ”就行了。
图示 1
在 CDM中创建两个实体, A与 B,单击工具选项板上的继承工具 连接 A与 B实体。图示 1
A是父实体, B是子实体。再创建实体 C以同样的方法连接到 C实体上。如图 2所示,表示 B、 C与 A之间存在继承联系。
三、 定义互斥性继承联系
双击继承联系的半圆符号,打开继承联系的属性窗口。如图 3所示
图示 3
Mutually exclusive children 表示父实体中的一条记录只能在一个子实体上出现,子实体之间存在互斥的关系。
Complete 表示父实体的所有实例必须是子实体之一,例如:“人”实体有“男人”和“女人”两个子实体,每个“人”实体的实例可以是“男人”或“女人”。
四、 定义继承联系的生成模式
图示 4
定义由 CDM生成 PDM或者生成 OOM中的 class图的生成模式。
说明:
Generate parent :表示继承联系中的父实体会生成 PDM中的表或 Class图中的类。
Generate children :
1) 选择 Inherit all attributes 表示继承联系中的子实体生成 PDM中的表或 Class图中的类,并且继承父实体中的所有实体属性
2) 选择 Inherit only primary attributes ,表示继承联系中子实体生成 PDM中的表或 Class图中的类,但只继承父实体中的标识符属性。
五、 继承联系状态表
图示 5