
1.2 E-R概念模型
模型,特别是具体的实物模型,人们并不陌生。例如,一张地图、一组建筑设计沙盘、一架精致的航模飞机,都是具体的模型。一眼望去,就会使人联想到真实生活中的事物。模型是现实世界特征的模拟和抽象。数据模型也是一种模型,它是对现实世界数据特征的抽象,是对客观事物及其联系的数据描述,是对现实世界(存在于人脑之外的客观世界)的模拟。在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。
数据模型主要可分为3种类型:概念模型、逻辑模型和物理模型。概念模型是按用户的观点来对数据和信息建模,主要用于数据库设计;逻辑模型是按计算机系统的观点对数据建模,主要用于DBMS的实现;物理模型是对数据最底层的抽象,它描述数据在磁盘上的存储方式和存取方法。
要将现实世界转变为机器能够识别的形式,必须经过两次抽象,即使用某种概念模型为客观事物建立概念级的模型,将现实世界抽象为信息世界,然后再把概念模型转变为计算机上某一DBMS支持的逻辑模型,将信息世界转变为机器世界,如图1-3所示。
图1-3 数据的转换
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。因此,概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。
概念模型的表示方法很多,其中最为著名、最为常用的是P.P.S.Chen于1976年提出的实体—联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R概念模型。下面介绍E-R概念模型中涉及的主要概念以及E-R图的绘制方法。
1.2.1 实体(Entity)
客观存在并可以相互区分的事物叫实体。从具体的人、物、事件到抽象的状态与概念,都可以用实体抽象表示。例如,在学校里,一个学生、一个教师、一门课程都可称为实体。同类的多个实体可以构成实体集,如多个学生实体可构成学生实体集。在不引起混淆的情况下,本书有时用实体来表示实体集的概念。
1.2.2 属性(Attribute)
属性是实体所具有的某些特性,通过属性对实体进行刻画,实体是由属性组成的。一个实体本身具有许多属性,能够唯一标识实体的属性称为该实体的码,例如,学号是学生实体的码,每个学生都有一个属于自己的学号,通过学号可以唯一确定是哪位学生,在一个学校里,不可能有两个学生具有相同的学号。实体由哪些属性组成取决于人们所关心的内容,例如,高校学生实体可由学号、姓名、年龄、性别、系和专业等组成。2012130143、马力华、19、男、计算机系、信息安全,这些属性组合起来表示了马力华这个学生。
1.2.3 联系(Relationship)
现实世界的事物之间是有联系的,这些联系必然要在信息世界加以反映。例如,教师实体与学生实体之间存在着教和学的联系。实体之间的联系可分为以下3类。
1.一对一联系(1:1)
设有两个实体集A和B。如果A中至多有一个实体与B中的一个实体有联系,而且B中至多有一个实体与A中的一个实体有联系,则称A和B之间存在一对一联系,记作1:1。例如,看电影时,观众和座位之间就是一对一的联系,因为一个人只能坐一个座位,一个座位只能由一个人来坐。
2.一对多联系(1:n)
设有两个实体集A和B。如果A中的一个实体与B中的若干实体有联系,但B中每个实体只与A中的一个实体相联系,则称A和B之间存在一对多联系,记作1:n。例如,班级与学生之间是一对多联系,因为一个班中可以有若干学生,但一个学生只能属于一个班。
3.多对多联系(m:n)
设有两个实体集A和B。如果A中的一个实体与B中的若干实体相联系,而且B中每个实体也与A中的多个实体相联系,则称A和B之间存在多对多联系,记作m:n。例如,学生与课程之间是多对多联系,因为一个学生可以选修若干课程,一门课程可以被若干学生选修。
【课堂练习1】判断下列实体间的联系类型。
(1)班级与班长(正);(2)班级与班委;(3)班级与学生;(4)供应商和商品;
(5)商店和顾客;(6)工厂和产品;(7)出版社和作者;(8)商品和超市。
1.2.4 E-R图的绘制
实体联系图(E-R图)是抽象描述现实世界的有力工具。它通过画图将实体以及实体间的联系刻画出来,为客观事物建立概念模型。下面以某学校计算机系的教学管理系统为例,说明实体联系图的建立方法。
第一步:确定现实系统可能包含的实体。
为了简单起见,假设该教学管理系统所涉及的实体有教师、学生、课程。
第二步:确定每个实体的属性,特别要注明每个实体的码。
本例教学管理系统的实体包含的属性和码如下:
(1)对教师实体,属性有教师号、姓名、性别、年龄、职称、专业,其中教师号是码。
(2)对学生实体,属性有学号、姓名、性别、年龄、籍贯、专业,其中学号是码。
(3)对课程实体,属性有课程号、课程名、学时数、学分、教材,其中课程号是码。
第三步:确定实体之间可能有的联系,并结合实际情况给每个联系命名。
本例教学管理系统的实体之间存在如下联系:
(1)一个教师可以讲授多门课程,一门课程可以被多位教师讲授,这里将教师与课程之间的联系命名为讲授。
(2)一个学生可以选修多门课程,一门课程可以被多位学生选修。这里将学生与课程之间的联系命名为选修。
(3)在某个时间和地点,一位教师可指导多位学生,但每个学生在某个时间和地点只能被一位教师指导。这里把教师和学生之间的联系命名为指导。
在对联系命名时,一般用动词,当用该动词连接两边的实体时,通常能表达一个符合逻辑的比较完整的意思。例如,用动词“讲授”为教师与课程的联系命名,并且教师“讲授”课程是一个符合逻辑的完整句子。这也是判断实体之间是否有联系和对联系命名是否恰当的简单标准。
第四步:确定每个联系的种类和可能有的属性。有时,为了更好地刻画联系的某些特性,需要对联系指定属性。
根据教学管理系统的实体间联系情况,可以确定教师和课程之间的讲授联系是m:n联系;学生和课程之间的选修联系是m:n联系,为了更好地刻画选修的结果,为选修联系指定成绩属性;教师和学生之间的指导联系是1:n联系,为了更好地刻画指导的环境因素,为指导联系指定时间和地点属性。
第五步:画E-R图,建立概念模型,完成现实世界到信息世界的第一次抽象。
在E-R图中规定:
(1)用长方形表示实体,在框内写上实体名。
(2)用椭圆形表示实体的属性,并用下画线标注实体的码,用无向边把实体与其属性连接起来。
例如,教师、学生、课程3个实体及属性可以表示成如图1-4所示的形式。
(3)用菱形表示实体之间的联系,菱形内写上联系名。用无向边把菱形与有关的实体连接,在无向边旁标上联系的类型。若实体之间的联系也有属性(实体以外的属性),则把属性和菱形也用无向边连接起来。
例如,图1-5是教学管理的E-R模型。
图1-4 E-R模型中实体及属性的表示
图1-5 教学管理E-R图
(4)为了使E-R图更清楚明了,如果实体的属性太多,可以在E-R图中只画出实体之间的联系,如图1-6所示,而将实体及属性在另一幅图中表示,如图1-4所示。这样,教学管理的E-R图则由图1-4和1-6组成。
在建立实体联系模型时,应注意以下几个问题:
(1)实体联系模型要全面正确地刻画客观事物,各类命名要清楚明了,易于理解。
图1-6 实体联系E-R图
(2)实体中码的选择应注意确保唯一性,即作为码的属性确实应该是那些能够唯一识别实体的属性。不一定必须是单个属性,也可以是某几个属性的组合。
(3)实体间的联系常常通过实体中某些属性的关系来表达,因此在选择组成实体的属性时,应考虑到如何更好地实现实体间的联系。
(4)有些属性是通过实体间的联系反映出来的,如选修中的分数属性,对这些属性应特别注意,因为它们经常是在将概念模型向逻辑模型转换时的重要数据项。
(5)前面给出的教学管理例子中,联系都是存在于两个实体之间,且实体之间只存在一种联系,这是最简单的情况。实际中,联系可能存在于多个实体之间,实体之间可能有多种联系。
(6)E-R模型具有客观性和主观性两重含义。E-R模型是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实,反映了用户的需求,因此E-R模型具有客观性。但E-R模型又不等同于客观事物的本身,它往往反映事物的某一方面,至于选取哪个方面或哪些属性,如何表达则决定于观察者本身的目的与状态,从这个意义上说,E-R模型又具有主观性。
【课堂练习2】设有商店和顾客两个实体。“商店”有属性:商店编号、商店名、地址、电话。“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每一次去商店购物有一个消费金额和日期。试画E-R图,并注明属性和联系类型。