原文http://www.cnblogs.com/yxonline/archive/2011/01/14/1935612.html
新年开篇说明:
很感谢大伙对此系列教程的关注,因为工作的很多原因,一 直没时间静下心来整理新的教程,担心没有自己没有理解清楚写出来误导大伙,故一拖再一拖,几年过去了,最近又收到很多网友的邮件要求继续写下去,没能一一 回复,还望谅解。以后每周抽出时间写一篇,篇幅长一点,仅此答谢广大关注的网友。
目标:本文主要介绍继承联系定义及使用。
一、 定义
实体之间除了我们之前所讲的联系外,还存在分类关系、继承关系。在CDM中我们统称分类关系、继承关系为继承联系。
通过特殊化或概化方法产生的实体类型之间的联系称为继承联系。
特殊化:在实体集内部分组并把这些分组存放在不同的实体类型中的过程称为实体集的特殊化。
概化:从多个实体集的公共属性中抽象出一个公共实体类型的过程为实体集的概化。
继承联系的一端是具有普遍性的实体集,为父实体集,另一端连接的是具体特殊的一个或多个实体集,为子实体集。
例如:“银行账户”是“借记卡账户”与“信用卡账户”的父实体,相反“借记卡账户”与“信用卡账户”是“银行账户”的子实体。
另外在继承联系中,还可以分为互斥性继承联系和非互斥性继承联系。
互斥性继承联系:父实体中的一个实例只能在一个子实体中。例如:“帐户”主实体下的“个人账户”与“公司账户”两个子实体之间的联系是互斥的。
非互斥性继承联系:父实体中的一个实例可以在多个子实体中。例如:“职工”父实体下的“干部”与“教师”子实体之间属于非互斥继承联系,教师有可能也是干部,干部有可能也是教师。
这里我就不再图示了,望大伙要认真理解概念。
二、 创建继承联系
注意:PowerDesigner 15 的版本,工具栏上的Inheritance图标默认是禁用的。打开方法如下:
Tools->Model Options->Model Settings->Notation 设为“E/R+Merise”就行了。
图示 1
图示 2
在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