2.1.2 概念模型
概念模型是信息世界的模型,不依赖于具体的计算机系统。其作为从现实世界到数据世界转换的中间模型,是数据库设计人员与用户进行交流描述数据的工具,它不考虑数据的操作,而只是用比较有效的、自然的方式来描述现实世界的数据及其联系。因此,概念模型的描述应具有较强的语义表达能力,同时还应简单、清晰、易于用户理解。目前使用较多的概念模型描述工具主要有UML、E-R模型等。本书以E-R模型为工具介绍概念模型。
1)概念模型中的基本概念
(1)实体
客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,在学生选课系统中涉及的“学生”“课程”“学生选课”等都是实体。在建立实体模型时,实体要逐一命名以示区别,如“学生”实体。
(2)属性与属性的值域
实体(客观事物)所具有的某一特性称为属性。一个实体可以由若干个属性来具体描述。在建立实体模型时,每个属性也要逐一命名。例如,“学生”实体的主要属性有学号、姓名、性别、出生日期、政治面貌、入学日期、专业、简历、照片等。
每个属性都有特定的取值范围,称为属性的值域。例如,“性别”属性的值域是{男,女}。
(3)实体型、实体个体与实体集
用实体名及其属性名集合来表示同类实体的结构组成,称为实体型。例如,“学生”实体的实体型表示为:学生(学号,姓名,性别,出生日期,政治面貌,入学日期,专业,简历,照片)。
在实体型描述的结构下,由若干属性的具体取值(属性值)所组成的集合表征了一个具体的实体,称为实体个体。例如,(200905010026,张伟,男,1990-10-25,团员,2009-9-1,信息安全,,)、(200900020103,王小惠,女,1991-3-2,团员,2009-9-1,经济学,,)为两个实体个体。每一个具体学生的基本信息就是一个“学生”实体的个体。
同型实体个体的集合称为实体集。例如,数据库系统所管理的每一个学生都按照“学生”实体型描述其基本信息,是一个“学生”实体个体。所有“学生”实体个体放在一起,就组成了“学生”实体集(所有学生的基本信息集合)。实体集中的每个成员在每个属性上都有对应的取值,表2-1为实体集的一个案例。
表2-1 “学生”实体集
(4)码
实体集中的实体个体彼此不相同。如果实体集中的一个属性或若干属性的最小组合的取值能唯一标识其对应的实体个体,则把该属性或属性组合称为码。对于每一个实体集,能够唯一标识实体的码可能会有多个,可指定一个码为主码。例如,在表2-1的实体集中,sno(学号)可作为码及主码。
(5)联系
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。建立概念模型的另一个主要任务就是要确定实体(型)之间的联系。
在一个应用系统中,两个实体集A和B之间的联系可能是以下3种情况之一。
①一对一联系:如果对于实体集A中的每一实体个体,实体集B中至多有一个实体个体(也可以没有)与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1∶1,如图2-2所示。
例如,一个国家有一个首都,一个首都只能对应一个国家,这样,首都和国家之间就具有一对一的联系。
②一对多联系:如果对于实体集A中的每一实体个体,实体集B中有n个实体个体(n≥0)与之联系,反之,对于实体集B中的每一实体个体,实体集A中至多只有一个实体个体与之联系,则称实体集A与实体B有一对多联系,记为1∶n,如图2-3所示。
例如,一个学院有多名教师,多名教师属于学院,这样学院与教师之间就存在一对多的联系。
③多对多联系:如果对于实体集A中的每一实体个体,实体集B中有n个实体个体(n≥0)与之联系,反之,对于实体集B中的每一实体个体,实体集A中也有m个实体个体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m∶n,如图2-4所示。
图2-2 一对一联系
图2-3 一对多联系
图2-4 多对多联系
例如,一个学生可选多门课程,一门课程可被多个学生选。“学生”与“课程”这两个实体集之间存在多对多的联系。
实体集之间的一对一、一对多、多对多联系不仅存在于两个实体集之间,也存在于两个以上的实体集之间。同一个实体集内的各实体个体之间也可以存在一对一、一对多、多对多的联系。
2)用E-R方法描述概念模型
把客观世界中所涉及的客观事物及其联系抽象出来,反映在信息世界里就是建立概念模型。建立概念模型时,实体要逐一命名以相互区别,提炼出各实体所包含的属性及属性命名,并描述实体间的各种联系。最著名、最实用的概念模型设计方法是P.P.S.Chen于1976年提出的“实体-联系”方法(Entity-Relationship Approach),简称E-R方法。
建立E-R图的步骤如下:
(1)确定实体型、属性及主码
E-R方法用矩形框表示实体型,框内写实体名字;用椭圆表示实体的属性,椭圆内写属性名字;用无向线段连接实体型与属性;用下画线标出作为主码的属性或属性组合。图2-5描述了教学系统中所涉及的部分实体型。
(2)确定实体型与实体型之间的联系及其属性(如果有)
概念模型要描述实体之间的联系,E-R方法用菱形表示联系,菱形框内写明联系名,并用无向直线分别与有联系的实体连接起来,同时在无向边旁标上联系的类型(1∶1、1∶n或m∶n)。联系也会有属性,用于描述联系的特征,如果一个联系有属性,那么这些属性也要通过无向边与该联系连接起来。同时,在一个联系中,一个实体可以出现两次或多次,扮演多个不同角色,此种情况称为实体的自身联系。例如,同一学院中,教师与教师之间可以有领导和被领导的关系,如图2-6所示。
图2-5 教学系统中所涉及的部分实体型
图2-6 E-R方法描述的实体之间联系
(3)连接各个实体型和联系
将各个实体型和联系进行连接,最后组合成最终的E-R图。图2-7描述了教学系统中实体之间的联系。
图2-7 教学系统中实体之间的联系
【例2.1】 设计某商业集团的E-R模型。该商业集团有“商店”:属性有商店号、商店名、地址、经理等;“商品”:属性有编号、名称、单价等;“职工”:属性有工号、姓名、性别等。
每个商店可销售多种商品,每种商品也可放在多个商店销售,有月销售量;同时,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。
第一步:首先确定实体型、属性以及主码。
从本例中很容易看出有3个实体型:商店、商品、职工。各实体型的属性及主码如下:
商店实体型:商店号、商店名、地址、经理,商店号为主码;
商品实体型:编号、名称、单价,编号为主码;
职工实体型:工号、姓名、性别,工号为主码。
第二步:确定联系及其属性(如果有)。
各实体型之间的联系如下:
销售联系:每个商店可销售多种商品,每种商品也可放在多个商店销售,有月销售量。所以商店实体型与商品实体型之间是多对多的联系,月销售量属于销售联系的属性。
聘用联系:每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。所以商店实体型与职工实体型之间是一对多的联系,聘期和月薪属于聘用联系的属性。
第三步:连接各个实体型和联系,组合成最终的E-R图。某商业集团的E-R模型如图2-8所示。
图2-8 某商业集团的E-R模型