二、E-R模型

概念模型对信息世界建模,应具有较强的语义表达能力,并且易于理解。概念模型的表示方法较多,其中最为著名的是P.P.S.Chen于1976年提出的实体联系方法(entity-relationship approach)。该方法采用E-R图(entity-relationship)来描述概念模型,E-R方法也称为E-R模型。在介绍E-R模型前,先学习几个信息世界的基本概念。

1.信息世界的基本概念

信息世界涉及的基本概念主要有实体(entity)、属性(attribute)、码(key)、域(domain)、实体型(entity type)、实体集(entity set)和联系(relationship)等。

(1)实体 客观存在并可以相互区分的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个医生、一个病人、一个科室、医生的一次诊疗、医生和科室的联系等都是实体。

(2)属性 实体具有的某一特性称为属性。一个实体可以通过多个属性来描述,例如,医生实体可以通过医生ID、姓名、性别、科室、职称等属性来描述(20020823,李明,男,消化内科,主任医师)。这些属性组合起来表征了一个医生。

(3)码 唯一标识实体的属性集称为码。例如医生实体的码是医生ID。

(4)域 一组具有相同数据类型的值的集合称为域。属性的取值范围来自某个域。例如,医生ID的域是8位长度的字符串,姓名的域也是字符串,性别的域是(男,女)等。

(5)实体型 具有相同属性的实体是同类实体,用实体名和属性集来描述同类实体称为实体型。例如,医生(医生ID,姓名,性别,科室,职称)就是描述医生的实体型。

(6)实体集 同一实体型的实体集合称为实体集。例如医院的全体医生就是一个实体集。

(7)联系 客观世界中,事物与事物之间、事物内部之间是存在联系的,这些联系在信息世界反映为实体之间以及实体内部属性之间的联系。

2.联系

(1)两个实体之间的联系 两个实体之间的联系可以分为三种,一对一联系(1∶1)、一对多联系(1∶n)和多对多联系(mn)。

1)一对一联系:对于实体集A中的每一个实体,在实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A和实体集B之间是一对一联系,记为1∶1。

例如,在医院里,一个科室只有一个科主任,一个科主任只管理一个科室,则科室和科主任之间存在一对一联系。

2)一对多联系:对于实体集A中的每一个实体,在实体集B中有n个实体(n≥0)与之联系,而实体集B的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A和实体集B之间是一对多联系,记为1∶n

例如,在医院里,一个科室有多个医生,一个医生只隶属于一个科室,则科室和医生之间存在一对多联系。

n=1时,一对多联系就变成了一对一联系,因此,一对一联系是一对多联系的一个特例。

3)多对多联系:对于实体集A中的每一个实体,在实体集B中有n个实体(n≥0)与之联系,而实体集B的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A和实体集B之间是多对多联系,记为mn

例如,一个病人找多个医生看过病,一个医生也给很多病人看过病,则病人和医生之间存在多对多联系。

m=1时,多对多联系就变成了一对多联系,因此,一对多联系是多对多联系的一个特例。

(2)三个以上实体之间的联系 两个以上的实体型之间也可能存在一对一、一对多和多对多的联系。例如,有三个实体型,供应商、项目和零件。一个供应商可以为多个项目供应多个零件,每个项目使用多个供应商的多个零件,每种零件可以由多个供应商提供,应用于多个项目,因此,供应商、项目和零件三个实体之间存在多对多的联系。

(3)单个实体型内部的联系 同一个实体型内部的各个实体之间也可能存在一对一、一对多和多对多的联系。例如,在医生实体型内部存在领导与被领导的联系,即某个医生(科主任)领导多名医生,而同一名医生仅被一个医生(科主任)领导,因此在医生实体型内部存在一对多的联系。

3.E-R模型的表示方法

E-R模型用E-R图来表示,E-R图具有较强的语义表达能力,而且简单易懂,得到了数据库设计人员的广泛应用。E-R图提供了表示实体型、属性和联系的方法。

(1)实体 用矩形表示,矩形框内标出实体名。

(2)属性 用椭圆形表示,在椭圆形内标出属性名,并且用无向边将其同实体型连接起来。例如,医生实体包括医生ID、姓名、性别、年龄、科室、职称等属性,用E-R表示见图1-8。

img

图1-8 医生实体E-R图

(3)联系 用菱形表示,菱形框内标出联系名,并用无向边分别同有关实体型连接起来,同时在无向边旁标出联系的类型(1∶1,1∶nmn)。如果一个联系具有属性,则这些属性也要用无向边同联系连接起来。上文举例的1∶1,1∶nmn的联系用E-R图表示,见图1-9。三个实体之间的联系和单个实体内部的联系分别见图1-10和图1-11。

img

图1-9 两个实体型之间的联系E-R图

img

图1-10 三个实体型之间联系E-R图

img

图1-11 单个实体的联系E-R图