概念模型
概念模型也称为信息模型,是一个与特定数据库管理系统无关的模型。
由于计算机不能直接处理现实世界中的具体事物,所以人们必须将具体事物转换成计算机能够处理的数据。在数据库中用数据模型来抽象、表示和处理现实世界中的数据。数据库即是模拟现实世界中某应用环境(一个企业、单位或部门)所涉及的数据的集合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。这个集合或者包含了信息的一部分(用用户视图模拟),或者包含了信息的全部(用概念视图模拟),而这种模拟是通过数据模型来进行的。
为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,在实际的数据处理过程中,首先将现实世界的事物及联系抽象成信息世界的信息模型,然后再抽象成计算机世界的数据模型。信息模型并不依赖于具体的计算机系统,不是某一个DBMS所支持的数据模型,它是计算机内部数据的抽象表示,是概念模型;概念模型经过抽象,转换成计算机上某一DBMS支持的数据模型。所以说,数据模型是现实世界的两级抽象的结果。在数据处理中,数据加工经历了现实世界、信息世界和计算机世界三个不同的世界,经历了两级抽象和转换。这一过程如图1.4所示。
|
图1.4 数据处理的抽象和转换过程
1.基本概念
在信息世界中,常用的主要概念如下:
1)实体(Entity)
客观存在并且可以相互区别的“事物”称为实体。实体可以是可触及的对象,如一个学生,一本书,一个供应商、一辆汽车;也可以是抽象的概念或联系,如学生的选课、客户的订货、员工和部门之间的工作关系等。
2)属性(Attributes)
实体的某一特性称为属性。如学生实体有学号、姓名、年龄、性别、系等方面的属性。属性有"型"和“值”之分,"型"即为属性名,如姓名、年龄、性别是属性的型;“值”即为属性的具体内容,如(990001,张立,20,男,计算机)这些属性值的集合表示了一个学生实体。
3)键(Key)
键也成为关键字,它能唯一标识一个实体的属性或属性集。如学生的学号,但学生的姓名可能有重名,因此不能作为学生实体的键。键可以是属性或属性组。
4)域(Domain)
属性值的取值范围称为该属性的域。例如,学号的域为6位整数,姓名的域为字符串集合,年龄的域为小于60大于0的整数,性别的域为(男,女)。
5)实体型(Entity Type)
具有相同属性的实体构成实体型,如学生(学号,姓名,年龄,性别,系)就是一个实体型。
6)实体集(Entity Set)
同型实体的集合称为实体集。如所有的学生、所有的课程等。
7)联系(Relationship)
在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来,在信息世界中将被抽象为实体型内部的联系和实体型之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。两个实体型之间的联系可以分为三类:
l 一对一联系(1﹕1):实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系,记作1﹕1。例如:班级与班长,观众与座位,病人与床位。
l 一对多联系(1﹕n):实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应,记作1﹕n。例如:班级与学生、公司与职员、省与市。
l 多对多(m﹕n):实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应,记作m﹕n。例如:一门课程同时又若干个学生选修,而一个学生同时选修多门课程,则课程与学生之间具有多对多联系。
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。可以用图形来表示两个实体型之间的这三类联系,如图 1.5所示。
|
|
|
(a)一对一联系 |
(b)一对多联系 |
(c)多对多联系 |
图1.5 实体A与实体B之间的三种联系
2.概念模型的表示方法
概念模型是对信息世界的建模,因此概念模型应该能够方便、准确地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的方法是P.P.S.Chen于1976年提出的实体-联系方法(Entity-relationship approach)。该方法用E—R图来描述现实世界的概念模型。
E—R图提供了表示实体型、属性和联系的方法。
l 实体型:用矩形表示,矩形框内写明实体名。
l 属性:用椭圆形表示,并用无向边将其与对应的实体连接起来。
l 联系:用菱形表示,菱形框内指定联系名,并用无向边分别于有关实体连接起来,同时在无向边旁注明联系的类型(1﹕1,1﹕n或m﹕n)。
需要注意的是,联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这种属性也要用无向边与该联系连接起来。
实例1.1 根据教务管理系统,描述简单的实体型间及实体型的联系图。使用E—R图描述两个实体型之间的联系、多个实体型之间的一对多联系和一个实体型内部的一对多联系。
下例定义5个实体型,使用E—R图描述两个实体型之间的三种联系。图1.6用E—R图描述了两个实体型之间的三种联系、三个实体型之间的一对多联系和一个实体型内部的一对多联系的例子。图1.6(a)描述班级与班长之间的一对一联系,即一个班级只有一个班长,一个学生只能担任一个班级的班长;图1.6(b)描述班级与学生之间的一对多联系,即一个班级有多个学生,但一个学生只能属于一个班级;图1.6(c)描述课程与学生之间的多对多联系,即一门课程可以有多个学生选修,一个学生可以选修多门课程;图1.6(d)描述课程、教师与参考书之间的一对多联系,即一门课程可以由多个教师讲授,可以有多本参考书;图1.6(e)描述学生实体型内部的一对多联系,即一个学生领导多个学生,而一个学生仅被一个领导所管。
|
|
|
|
(a)两个实体型间的1﹕1联系 |
(b)两个实体型间的1﹕n联系 |
(c)两个实体型间的m﹕n联系 |
|
|
|
||
(d)三个实体型间的1﹕n联系 |
(e)统一实体型间的1﹕n联系 |
||
图1.6 实体型之间及实体型的联系
实例1.2 根据教务管理系统,描述包含实体属性及其联系的概念模型图。
下例根据实例1.1的5个实体型,描述各个实体的属性图和实体间联系图。这5个实体的属性描述如下:
l 学生(学号、姓名、性别、出生日期、班级)、
l 班级(班级号、班级名、所属系)、
l 课程(课程号、课程名称、类别、学分)、
l 教师(教师号、姓名、性别、出生日期、职称)、
l 参考书(书号、书名、单价、内容摘要)。
图1.7(a)是这5个实体的属性E—R图,图1.7(b)是这个概念模型各个实体间的联系图。这里,采用两张E—R图,可以更加清晰地描述概念模型。如果将图1.7(a)和(b)合并,可以得到一个完整的关于学校课程管理的概念模型(如图1.7(c)所示)。
|
|
|
|
|
|
(a)实体及其属性图 |
|
|
|
(b)实体及其联系图 |
|
|
|
(c)实体属性及其联系图 |
图1.7 E—R图实例