6.2.3 ER模型

2025-06-07 22:37:07 更新

概念模型是对信息世界建模,所以概念模型能够方便、准确地表示信息世界中的常用概念。概念模型有很多种表示方法,其中最为常用的是PP-S.Chen于1976年提出的实体-联系方法(Entity Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型(Entity-RelationshipModel, E-R 模型)。

E-R模型是软件工程设计中的一个重要方法,在数据库设计中,常用E-R模型来描述现实世界到信息世界的问题。因为它接近于人的思维方式,容易理解并且与计算机无关,所以用容易接受,是用户和数据库设计人员交流的语言。但是,E-R模型只能说明实体间的语义联系,还不能进一步地详细说明数据结构。在解决实际应用问题时,通常应该先设计一个E-R模型,然后再把其转换成计算机能接受的数据模型。

1. E-R方法

概念模型中最常用的方法为实体-联系方法,简称E-R方法。该方法直接从现实世界中抽

象出实体和实体间的联系,然后用非常直观的E-R图来表示数据模型。在E-R图中有表6-1所示的几个主要构件

在E-R图中,实体集中作为主码(或主键)的一部分属性名下面加下画线标明。另外,在实体集与联系的线段上标注联系的类型。

2-实体

从表6-1中可见,在E-R模型中实体用矩形表示,通常矩形框内写明实体名。实体是现实世界中可以区别于其他对象的"事件”或“物体"。例如,企业中的每个人都是一个实体。每个实体由一组特性(属性)来表示,其中的某一部分属性可以唯一标识实体,如职工号。实体集是具有相同属性的实体集合,例如,学校所有教师具有相同的属性,因此教师的集合可以定义为一个实体集;学生具有相同的属性,因此学生的集合可以定义为另一个实体集。

3.联系

在E-R模型中,联系用菱形表示,如表6-1所示。通常可在菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标注上联系的类型(1 : 1、1 : *或* ; *)。实体的联系分为实体内部的联系和实体与实体之间的联系。实体内部的联系反映数据在同一记录内部各字段间的联系。

1)两个不同实体之间的联系

两个实体之间的联系可分为3类:一对一联系记为1 : 1, 一对多联系记为1 :*(或1 :”),多对多联系记为* : * (或m : »)。

(1) 1 : 1=如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之对应,

反之亦然,则称A与B具有一对一联系。

(2) 1 : *。如果对于实体集A中的每一个实体,实体集B中有??个实体("NO)与之对应;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之对应,则称A与B具有一对多联系。

(3) * : *。如果对于实体集A中的每一个实体,实体集B中有〃个实体3N0)与之对

应;反之,对于实体集B中的每一个实体,实体集A中也有挥个实体(m>0)与之对应,则称A与B具有多对多联系。

2)两个以上不同实体集之间的联系

两个以上不同实体集之间存在1 : 1 : 1、1 : 1 : *、1 : * : *和* : * : *的联系。

图6-5 (a)表示供应商Supp、项目Proj和零件Part之间的多对多(*:*:*)的联系,联系名为“SP_P”。表示供应商为多个项目供应多种零件,每个项n可用多个供应商供应的零件,

每种零件可由不同的供应商供应的语义。

图G5 (b)表示病房、病人和医生之间的一对多对多(1 : * : *)的联系,联系名为“P_D” o表

示一个特护病房有多个病人和多个医生,一个医生只负责一个病房,一个病人只属于一个病房的语义。

注意:三个实体集之间的多对多的联系和二个实体集两两之间的多对多的联系的语义是不同的。例如,供应商和项目实体集之间的“合同”联系,表示供应商为哪几个工程签了合同。

供应商与零件两个实体集之间的“库存”联系,表示供应商库存零件的数量。项目与零件两个实体集之间的“组成”联系,表示一个项目有哪几种零件组成。

3) 同一实体集内的二元联系

同一实体集内的各实体之间也存在1 : 1、1 : *和* : *的联系,如图6-6所示。从图中可见,职工实体集中的领导与被领导联系是1 : *的,如图6-6 (a)所示。但是,职工实体集

中的婚姻联系是1 : 1的,如图6-6 (b)所示。

4.属性

图6-6同一实体集之间的联系

属性是实体某方面的特性。例如,职工实体集具有职工号、姓名、年龄、参加工作时间和通信地址等属性。每个属性都有其取值范围,如职工号为0001〜9999的4位整型数,姓名为10位的字符串,年龄的取值范围为18〜60等。在同一实体集中,每个实体的属性及其域是相同的,但可能取不同的值。E-R模型中的属性有如下分类:

(1) 简单属性和复合属性。简单属性是原子的、不可再分的,复合属性可以细分为更小的部分(即划分为别的属性)。有时用户希望访问整个属性,有时希望访问属性的某个成分,那么在模式设计时可采用复合属性。例如,职工实体集的通信地址可以进一步分为邮编、省、市、街道。若不特别声明,通常指的是简单属性.

(2) 单值属性和多值属性。前面所举的例子中,定义的属性对于一个特定的实体都只有单独的一个值。例如,对于一个特定的职工,只对应一个职工号、职工姓名,这样的属性叫作单值属性。但是,在某些特定情况下,一个属性可能对应一组值。例如,职工可能有0个、1个或多个亲属,那么职工的亲属的姓名可能有多个数目,这样的属性称为多值属性。

(3) NULL属性。当实体在某个属性上没有值或属性值未知时,使用NULL值。表示无意义或不知道。

(4) 派生属性,派生属性可以从其他属性得来,例如,职工实体集中有“参加工作时间"和“工作年限”属性,那么“工作年限”的值可以由当前时间和参加工作时间得到。这里,“工作年限"就是一个派生属性。

派生属性是指可以由其他属性进行计算来获得的属性,如年龄是派生属性,因为该属性可以由出生口期、系统当前时间计算获得。若在系统中存储派生属性,会引起数据冗余,增加额外存储和维护负担,还可能导致数据的不一致性。

家庭地址可以进一步分为邮编、省、市、街道,故为复合属性。

5.扩充的E-R模型

尽管基本的E-R模型是对大多数数据库特征建模,但数据库某些情况下的特殊语义,仅用基本E-R模型无法表达清楚。在这一节中,将讨论扩充的E-R模型,包括弱实体、特殊化、概括和聚集等概念。

1)弱实体

在现实世界中有一种特殊的依赖联系,该联系是指某实体是否存在对于另一些实体具有很强的依赖关系,即一个实体的存在必须以另一个实体为前提,而将这类实体称为弱实体。例如某企业职工与家属的联系,家属总是属于某职工的,若某职工离职将其从职工关系中删除,家属也随即删除,那么家属属于“弱实体”,职工与家属之间的“所属”联系属于依赖联系。

在扩展的E-R图中,弱实体用双线矩形框表示。图6-7为职工与家属的E-R图。


图6-7弱实体与依赖联系

2)特殊化

前面己经介绍了,实体集是具有相同属性的实体集合。但在现实世界中,某些实体一方面具有一些共性,另一方面还具有各自的特殊性。这样,一个实体集可以按照某些特征区分为几个子实体。

设有实体集E,如果S是E的某些真子集的集合,记为$ = {§ |S, uE" = l,2,-,”},则

称S是旧的一个特殊化,E是岛、$2、…、S”的超类,5、$2、…、&称为E的子类。

如果则称S是五的全特殊化,否则是E的部分特殊化。

在扩充的E-R模型中,子类继承超类的所有属性和联系,但是,子类还有自己特殊的属性和联系,超类-子类关系模型使用特殊化圆圈和连线的一般方式来表示。超类到圆圈有一条连线,连线为双线表示全特殊化,连线为单线表示部分特殊化;双竖边矩形框表示子类;有符号“U”的线表示特殊化;圆圈中的d表示不相交特殊化;圆圈中的。表示重叠特殊化。

表6一2扩充E R图中的主要构件

不相交全特殊化,即表示一个实体全部参与到联系集中

不相交部分特殊化

重叠全特殊化

重叠部分特殊化

n ii 子类

6.E-R模型应用举例

E-R模型强调的是语义,与现实世界的问题密切相关。这句话的意思

是,尽管都是学校教学管理,但由于不同的学校教学管理的方法可能会有不同的语义,因此会得到不同的E-R模型。

7.扩充E-R模型应用举例

(3)教职工实体集可以分为教师、工人和在职生子类,那么,教师、工人和在职生是实体集

“教职工”的特殊化。由于在职生、教师和工人的集合等于教职工,所以该子类是"教职工”全部特殊化。教师、工人和在职生不仅要继承教职工的所有属性,教师、工人和在职生分别还要增加职称、工种和工作量属性。又由于有的教职工可能为学生,所以超类到子类的圆圈内填写“。”,表示连接的子类有重叠。根据上述分析,得到教职工与其子类的扩充E-R图如图6-11所示。

(4)根据题意研究生还需要参加项目,项目有项目号和项目名属性,所以研究生与项目之

间需要增加“参加”联系,得到研究生与项目的E-R图如图6-12所示。