概要:本文主要是介绍逻辑数据模型ER图,包括实体,联系的不同种类以及符号标记。
实体约定
说明:
- 独立实体
不需要依赖其它的实体来对自身进行唯一性识别。方框中横线的上方属性为主键属性,下方为非主键属性。 - 依赖实体
跟独立实体相对应,依赖实体需要其它的实体来对它自身进行唯一性识别。 - 实线
连接两个实体,表示实体之间固有的联系。 - 可选连线
最左侧的圆圈表示该联系可有可无,表示该联系不是必需的。 - 虚线
表示子实体不依赖于父实体进行唯一性标识。 - 外键
属性在该实体内是一个非主键属性,但是在某一个实体中,该属性必须是主键。
基数约定
下图展示了基数规则,描述了两个实体之间的联系。联系是基于当一个实体出现一次的时候,
与该实体相关的实体所出现的次数。
说明
- 一对零、一或者多个
- 一对多个
- 一对零、一个
- 一对三个
- 一或零个对零、一或者多个
例子
-
父子关系图
子实体的存在以及唯一性标识都取决于父实体,如下图所示:
-
其它标识性关系
下图展示了其它的标识性关系。子实体的存在和唯一性标识都取决于父实体。如下图所示:
注意:子实体中唯一标识父实体的属性既是外键,又是主键。
-
非标识性关系
子实体的唯一性标识并不取决于父实体。此时,子实体中用于标识父实体的属性只是子实体的外键。 当父实体不存在的时候,该属性的值为null。如下图所示:
-
互斥型关系
父类型Account中所有的属性子类型Account Checking和Account Saving中都有;而子类型中的属性为各个子类型所特有的。 其中Account type表示该Account是Account checking还是Account Saving。针对某一个Account实例, 要么是一个Saving Account实例,或者Checking Account实例,要么根本不属于这两种子类型实例。
-
内含型关系
Event 有三种子类型:Account Event, Financial Event以及Contact Event。父类型Event中所有的属性都是子类型中共同的属性, 而子类型中的属性是各个子类型所特有的。下图表示一个Event实例可以都是它的三个子类型。