2.1 概念模型及表示

概念模型是对信息世界的管理对象、属性及联系等信息的描述形式。概念模型不依赖计算机及数据库管理系统,它是现实世界的真实全面反映。本节介绍有关概念模型的基本概念和表示方法。

2.1.1 信息的3种世界及描述

信息的3种世界是指现实世界、信息世界和计算机世界(也称数据世界)。数据库是模拟现实世界中某些事务活动的信息集合,数据库中所存储的数据,来源于现实世界的信息流。信息流用来描述现实世界中一些事物的某些方面的特征及事物间的相互联系。在处理信息流前,必须先对其进行分析并用一定的方法加以描述,然后将描述转换成计算机所能接受的数据形式。

1.信息的现实世界

现实世界泛指存在于人脑之外的客观世界。信息的现实世界是指要管理的客观存在的各种事物、事物之间的相互联系及事物的发生、变化过程。通过对现实世界的了解和认识,使得人们对要管理的对象、管理的过程和方法有个概念模型。认识信息的现实世界并用概念模型加以描述的过程称为系统分析。信息的现实世界通过实体、特征、实体集及联系进行划分和认识。

(1)实体

现实世界中存在的可以相互区分的事物或概念称为实体(Entity)。实体可以分为事物实体和概念实体,例如,一个学生、一个工人、一台机器、一辆汽车等是事物实体,一门课、一个班级等称为概念实体。

(2)实体的特征

每个实体都有自己的特征(Characteristic),利用实体的特征可以区别不同的实体。例如,学生通过姓名、性别、年龄、身高和体重等许多特征来描述自己。尽管实体具有许多特征,但是在研究时,只选择其中对管理及处理有用的或有意义的特征。例如,对于人事管理,职工的特征可选择姓名、性别、年龄、工资和职务等;而在描述一个人健康情况时,可以用职工的身高、体重和血压等特征表示。

(3)实体集及实体集之间的联系

具有相同特征或能用同样特征描述的实体的集合称为实体集(Entity Set)。例如,学生、工人、汽车等都是实体集。实体集不是孤立存在的,实体集之间有着各种各样的联系,例如,学生和课程之间有“选课”联系,教师和教学系之间有“工作”联系。

2.信息世界

现实世界中的事物反映到人们的头脑里,经过认识、选择、命名和分类等综合分析而形成了印象和概念,从而得到了信息。当事物用信息来描述时,即进入信息世界。在信息世界中,实体的特征在头脑中形成的知识称为属性;实体通过其属性表示称为实例;同类实例的集合称为对象,对象即实体集中的实体用属性表示得出的信息集合。实体与实例是不同的,例如,张三是一个实体,而“张三,男,25岁,计算机系学生”是实例,现实世界中的张三除了姓名、性别、年龄和所在系外还有其他的特征,而实例仅对需要的特征通过属性进行了描述。在信息世界中,实体集之间的联系用对象联系表示。

信息世界通过概念模型(也称信息模型)、过程模型和状态模型反映现实世界,它要求对现实世界中的事物、事物间的联系和事物的变化情况准确、如实、全面地表示。概念模型通过E-R图中的对象、属性和联系对现实世界的事物及关系给出静态描述。过程模型通过信息流程图和数据字典描述事物的处理方法和信息加工过程。状态模型通过事物状态转换图对事物给出动态描述。数据库主要是根据概念模型设计的,而数据处理方法主要是根据过程模型设计的,状态模型对数据库的系统功能设计有重要的参考价值。

3.信息的计算机世界

信息世界中的信息,经过数字化处理形成计算机能够处理的数据,就进入了计算机世界。计算机世界也叫机器世界或数据世界。在信息转换为数据的过程中,对计算机硬件和软件(软件主要指数据库管理系统)都有限定,所以信息的表示方法和信息处理能力要受到计算机硬件和软件限制。也就是说,数据模型应符合具体的计算机系统和DBMS的要求。

在计算机世界中用到下列术语。

(1)数据项

数据项(Item)是对象属性的数据表示。数据项有型和值之分,数据项的型是对数据特性的表示,它通过数据项的名称、数据类型、数据宽度和值域等来描述;数据项的值是其具体取值。数据项的型和值都要符合计算机数据的编码要求,即都要符合数据的编码要求。

(2)记录

记录(Record)是实例的数据表示。记录有型和值之分,记录的型是结构,由数据项的型构成;记录的值表示对象中的一个实例,它的分量是数据项值。例如,“姓名,性别,年龄,所在系”是学生数据的记录型,而“张三,男,23,计算机系”是一个学生的记录值,它表示学生对象的一个实例,“张三”“男”“23”“计算机系”都是数据项值。

(3)文件

文件(File)是对象的数据表示,是同类记录的集合。即同一个文件中的记录类型应是一样的。例如,将所有学生的登记表组成一个学生数据文件,文件中的每条记录都要按“姓名,性别,年龄,所在系”的结构组织数据项值。

(4)数据模型

现实世界中的事物反映到计算机世界中就形成了文件的记录结构和记录,事物之间的相互联系就形成了不同文件间的记录的联系。记录结构及其记录联系的数据化的结果就是数据模型(Data Model)。

4.现实世界、信息世界和计算机世界的关系

现实世界、信息世界和计算机世界这3个领域是由客观到认识、由认识到使用管理的3个不同层次,后一领域是前一领域的抽象描述。关于3个领域之间的术语对应关系,如表2-1所示。

表2-1 信息的3种世界术语的对应关系表

978-7-111-64633-4-Chapter02-1.jpg

现实世界、信息世界和计算机世界的转换关系可以用图2-1表示。

978-7-111-64633-4-Chapter02-2.jpg

图2-1 信息的3个世界的联系和转换过程

从图2-1中可以看出,现实世界的事物及联系,通过系统分析成为信息世界的信息模型,而信息模型经过数据化处理转换为数据模型。

2.1.2 概念模型的基本概念

数据库的概念模型也称信息模型。在介绍概念模型基本概念之前,有必要说明本书根据最新的研究所界定的概念模型中的对象、实例等概念,在许多教科书中仍被称作实体集(或实体型)、实体。其实对象和实体集、实例和实体的概念是不同的。但为了统一起见,本书在解释了它们之间对应关系的前提下,有些地方也用实体集、实体表示对象、实例。

1.概念模型涉及的基本概念

(1)对象和实例

对象是实体集遵循其实体型抽象的结果。现实世界中,具有相同性质、服从相同规则的一类事物(或概念,即实体)的抽象称为对象(Object),对象是实体集信息化(数据化)的结果。对象中的每一个具体的实体的抽象为该对象的实例(Instance)。

(2)属性

属性(Attribute)是实体的某一方面特征的抽象表示。例如,学生可以通过“姓名”“学号”“性别”“年龄”及“政治面貌”等特征来描述。此时,“姓名”“学号”“性别”“年龄”及“政治面貌”等就是学生的属性。属性值是属性的具体取值。例如,某一学生的姓名为“李利”,学号为“79201”,性别为“男”,年龄为“21”,政治面貌为“党员”,这些具体描述就称为属性值。

(3)码、主码和次码

码(Key)也称关键字,它能够唯一标识一个实体。码可以是属性或属性组,如果码是属性组,则其中不能含有多余的属性。例如,在学生的属性集中,学号确定后,学生的其他属性值也都确定了,学生记录也就确定了。由于学号可以唯一地标识一个学生,所以学号为码。在有些实体集中,可以有多个码。如学生实体集,假设学生姓名没有重名,那么属性“姓名”也可以作为码。当一个实体集中包括有多个码时,通常要选定其中的一个码为主码(Primary Key),其他的码就是候选码。

实体集中不能唯一标识实体属性的叫次码(Secondary Key)。例如,“年龄”“政治面貌”,这些属性都是次码。一个主码值对应一个实例,而一个次码值会对应多个实例。

(4)域

属性的取值范围称为属性的域(Domain)。例如,学生的年龄为16~35范围内的正整数,其数据域为(16~35)。

2.实体联系的类型

(1)两个实体集之间的联系

两个实体集之间的联系可概括为3种。

1)一对一联系(1∶1)。

设有两个实体集A和B,如果实体集A与实体集B之间具有一对一联系,则对于实体集A中的每一个实体,在实体集B中至多有一个(也可以没有)实体与之联系;反之,对于实体集B中的每一个实体,实体集A也至多有一个实体与之联系。两实体集间的一对一联系记作1∶1。例如,在一个工厂里面只有一个厂长,而一个厂长只能在一个工厂里任职,则工厂与厂长之间具有一对一联系。

2)一对多联系(1∶n)。

设有两个实体集A和B,如果实体集A与实体集B之间具有一对多联系,则对于实体集A的每一个实体,实体集B中有一个或多个实体与之联系;而对于实体集B的每一个实体,实体集A中至多有一个实体与之联系。实体集A与实体集B之间的一对多联系记作1∶n。例如,一个学校里有多名教师,而每个教师只能在一个学校里教学,则学校与教师之间具有一对多联系。

3)多对多联系(m∶n)。

设有两个实体集A和B,如果实体集A与实体集B之间具有多对多联系,则对于实体集A的每一个实体,实体集B中有一个或多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中也有一个或多个实体与之联系。实体集A与实体集B之间的多对多联系记作m∶n。例如,工厂里的一个职工可以参加多个体育团体,而一个体育团体也可以有多名职工,体育团体与职工之间具有多对多联系。

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。图2-2是用E-R图表示两个实体集之间的1∶1、1∶n或m∶n联系的实际例子。

(2)多实体集之间的联系

两个以上的实体集之间也会有联系,其联系类型一般为一对多和多对多。

1)多实体集之间的一对多联系。

设实体集E1,E2,…,En,如果Ej(j=1,2,…,n)与其他实体集E1,E2,…,Ej-1,Ej+1,…,En之间存在有一对多的联系,则对于Ej中的一个给定实体,可以与其他实体集Ei(i≠j)中的一个或多个实体联系,而实体集Ei(i≠j)中的一个实体最多只能与Ej中的一个实体联系,则称Ej与E1,E2,…,Ej-1,Ej+1,…,En之间的联系是一对多的。

978-7-111-64633-4-Chapter02-3.jpg

图2-2 两个实体集联系的例子

例如,在图2-3a中,一门课程可以有若干教师讲授,一个教师只讲授一门课程;一门课程使用若干本参考书,每一本参考书只供一门课程使用。所以课程与教师、参考书之间的联系是一对多的。

2)多实体集之间的多对多联系。

在两个以上的多个实体集之间,当一个实体集与其他实体集之间均存在多对多联系,而其他实体集之间没有联系时,这种联系称为多实体集间的多对多联系。

例如,有3个实体集:供应商、项目和零件,一个供应商可以供给多个项目多种零件;每个项目可以使用多个供应商供应的零件;每种零件可由不同供应商供给。因此,供应商、项目、零件3个实体型之间是多对多的联系,如图2-3b所示。

978-7-111-64633-4-Chapter02-4.jpg

图2-3 3个实体集联系的实例

(3)实体集内部的联系

实际上,在一个实体集的实体之间也可以存在一对多或多对多的联系。例如,职工是一个实体集,职工中有领导,而领导自身也是职工。职工实体集内部具有领导与被领导的联系,即某一个职工领导若干名职工,而一个职工仅被一个领导所管,这种联系是一对多的联系,如图2-4所示。

978-7-111-64633-4-Chapter02-5.jpg

图2-4 同一实体集内的一对多联系实例

2.1.3 概念模型的表示方法

概念模型是对信息世界的建模,概念模型应当能够全面、准确地描述出信息世界中的基本概念。概念模型的表示方法很多,其中最为著名和使用最为广泛的是P.P.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach),简称E-R图法。该方法用E-R图来描述现实世界的概念模型,并提供了表示实体集、属性和联系的方法。E-R图也称为E-R模型。在E-R图中,实体集及其联系、属性等的表示如下。

1)用长方形表示实体集,长方形内写实体集名。

2)用椭圆形表示实体集的属性,并用线段将其与相应的实体集连接起来。例如,学生具有学号、姓名、性别、年龄和所在系,共5个属性,用E-R图表示如图2-5所示。

978-7-111-64633-4-Chapter02-6.jpg

图2-5 学生及其属性的E-R图

由于实体集的属性比较多,有些实体可具有多达上百个属性,所以在E-R图中,实体集的属性可不直接画出,而通过数据字典的方式表示(即文字说明方式)。无论使用哪种方法表示实体集的属性,都不能出现遗漏属性的情况。

3)用菱形表示实体集间的联系,菱形内写上联系名,并用线段分别与有关实体集连接起来,同时在线段旁标出联系的类型。如果联系具有属性,则该属性仍用椭圆形表示,仍需要用线段将属性与其联系连接起来。联系的属性必须在E-R图上标出,不能通过数据字典说明。例如,供应商、项目和零件之间存在有供应联系,该联系有供应量属性,如图2-6所示。

978-7-111-64633-4-Chapter02-7.jpg

图2-6 实体集间联系的属性及其表示