E-R图的用法

一.实体联系方法(Entity—Relationship Approach),也叫做E-R模型,描述现实世界的概念模型。

实体      联系   属性  三要素通过一条无向边连接,是一个无向图

注意:1.联系不能脱离实体,必须有实体连接且可以是实体的自身联系

          2.属性既可以连接实体,也可以连接联系。但一个属性只能有唯一的连接对象。

两个实体之间的联系(1)一对一(2)一对多(3)多对多

多个实体之间的联系(1)多个实体之间一对多(2)多个实体之间多对多

弱实体集:一个实体A对于另一个实体B(A的父实体)具有很强的一来联系,且实体A主码的一部分或全部从其父实体获得。即一个实体的主码从另一个实体的部分或全部属性构成,即一个依赖于另一个实体而存在,这样的实体集(A)叫做弱实体集,另外的那个实体集(B)叫做强实体集。

              1)弱实体集A到弱实体集B必然多对一的联系

              2)A应为B的主码提供自己的主码

在E-R图中,用双边矩形来代表弱实体集,用双边菱形来代表弱实体集之间的联系。

E-R图的 设计原则

1)尽量减少实体集数量,能作为属性时不要 作为实体集

2)“属性”不能再具有需要描述的性质。必须时不可分割的数据项。不能时其他属性的聚集

3)“属性”不能与其他实体具有联系

4)综合局部E-R图,产生出总体E-R图。在这个过程中,同类实体只能出现一次,并去掉不必要的联系,以便消除冗余。一般的,能够根据总体E-R图导出各个局部的E-R图。

扩展E-R图设计的描述中,三个实体之间的联系与三个实体之间的两两联系是等价的

二.扩展E-R图

1)特化Specialization

有时一个实体集会保护若干子集,这些子集各自具有不同的属性。

比如person可以包含employee和student子集,这些子集在person本身属性的问题上,附加了特殊的属性,employee会有salary属性,student会有score属性。特化就是在实体集内部分组的过程。

在E-R模型中特化用从特化实体指向被特化尸体的空心箭头线表示,叫做ISA联系,即“is a”,比如从employee指向person,也即是“employee is a person”。

有些实体集可以有不同的特化方式,employee可以特化为instructor.secretary,也可以特化为temporary_employee,permanent_employee,这样一个employee可能是一个instructor的同时也是一个permanent_employee,这样一个实体可以属于多个实体集的特化称为重叠特化(overlapping specialization),只能属于一个实体集的特化则称为不相交特化。重叠特化用两个独立的空心箭头,不相交特化使用一个箭头。

2)概化(generalization)

(1)特化就是在在自顶而下(top-down)的设计过程中,显式地将初始实体分为一系列不同级别子实体的过程。设计过程也可以是自底向上的(bottom-up),将一系列低级别的实体合成为具有基本属性的顶层实体,这便是概化,高层实体集与一个或多个底层实体集之间的包含关系。高层与低层实体集也可以是分别称为超类(superclass)和子类(subclass)。

(2)属性继承(Attribute Inheritance)

由特化和概化产生的高层和低层实体的一个重要特性是属性继承,高层实体集的属性被低层实体集继承,所以高层实体集的属性适用于低层实体集,但反之则不成立。

3)概化的约束

a)条件定义的

在条件定义的低层实体集中,根据实体是否满足某个特定的条件来确定成员资格。比如通过student.student_type=graduate/undergraduated

来区分子实体是本科生还是研究生。

b)用户定义的

用户定义的低层实体集由数据库用户自行决定实体的划分。比如将教师分为几个教学组,employee的划分方式由用户决定。

c)完整性约束(completeness constraint)

全部概化\特化:每个高层实体必须属于一个低层实体集;

部分概化\特化:不是所有高层实体都有属于的低层实体集;

这在数据插入.删除上会带来区别。



猜你喜欢

转载自blog.csdn.net/weixin_40752764/article/details/80570333