1
大学信息技术基础教程
1.2.6.2.3 6.2.3 概念数据模型

6.2.3 概念数据模型

概念数据模型是现实世界到机器世界的第一层抽象,是进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。概念数据模型最常用的建模方法是“实体-联系法”,该方法用E-R图来描述某一组织的概念数据模型。

下面主要介绍一下有关的术语和E-R(Entity-Relation)图的画法。

1)概念数据模型中的基本术语

(1)实体(Entity)

实体是指客观存在并可以相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系,如一个学生、一门课、学生的一次选课等。

(2)属性(Attribute)

实体所具有的某一特性称为“属性”。一个实体可以由若干个属性来描述,如学生具有学号、姓名、性别、出生年月、所在系、入学年份等属性。

(3)键(Key)

键是用来唯一识别一个实体的属性或属性组合。例如,对于学生实体,因为每个学号都不重复,一个学号只能与一个学生相对应,所以学号可以作为学生的键,也就是说如果要查找某个学生,只要提供该生的学号就可以了。

(4)实体集(Entity Set)

实体集是指同一类型实体所构成的集合,如全体学生就是一个实体集,全体教师是另一个实体集。

(5)实体类型(Entity Type)

实体类型是指同一个实体集所具有的相同属性和特征,即用实体名和相关的属性名来描述同类实体,如课程(课程号、课程名、学分、学时)就是一个实体类型。

(6)联系(Relationship)

现实世界中万物间的联系是错综复杂的,这种联系反映到信息世界中又可分为两种:一种是实体内部各个属性之间的联系,一种是不同的实体集之间的联系。在实际应用中我们着重关注不同的实体集之间的联系。归纳现实世界中实体集之间的联系情况,也可以分为三种:一对一联系、一对多联系和多对多联系。以下我们将详细介绍这三种联系方式。

①一对一联系(记作1∶1)

如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对一联系,记作1∶1。

如一个班级只有一个班主任,一个班主任只负责管理一个班级,则班级和班主任之间具有一对一联系。又比如,假设一个部门只有一个经理,一个经理负责管理一个部门,则部门和经理之间也是一对一联系。

②一对多联系(记作1∶n)

如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记作1∶n。

如一个班级由很多个学生组成,每个学生只能属于一个班级,因此一个班级可以与学生实体集中的多个学生相联系,而学生实体集中的每个学生最多只能与一个班级相对应,所以班级和学生之间是一对多联系。

又如,一个部门由很多个职工组成,每个职工只能属于一个部门,因此部门和职工之间也是一对多联系。

由上可见,一对多联系在多数情况下是用来表示组成关系的,如班级由学生组成,系由教师组成,部门由职工组成等。

③多对多联系(记作m∶n)

如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B具有多对多联系,记作m∶n。

如一个学生可以选修多门课程,一门课程也可以同时被多个学生选修,因此学生和课程之间是多对多联系。

又如,一个商店可以销售多种商品,每一种商品又可以在多个商店同时销售,因此商店和商品之间也是多对多联系。

2)E-R图的画法

为了直观地表示实体集的属性和实体集之间的联系方式,实体-联系模型(E-R模型)提供了一些简明的符号工具来表示实体集、属性和联系。

(1)实体集的表示方法:用长方形框表示,框内写上实体集名。

(2)属性的表示方法:用椭圆形表示,在里面写上属性名,并用线段将属性与相应的实体集联系起来。

(3)联系的表示方法:用菱形表示,在菱形框内写上联系名,并用线段将菱形框与相关实体联系起来,然后在线段旁注明联系的类型,如果一个联系本身也有属性,则将属性框与该菱形相连。

下面举些例子说明E-R图的画法。

[例1] 班级和班主任这两个实体集之间的一对一联系可以用图6.2表示。

img112

图6.2 班级和班主任的E-R图

[例2] 班级和学生这两个实体集之间的一对多联系可以用图6.3表示。

img113

图6.3 班级和学生的E-R图

[例3] 学生和课程之间的多对多联系可以用图6.4表示。

img114

图6.4 学生和课程的E-R图

在例3中,由于学生选修一门课程后,在课程结束时会得到一个考试成绩,所以为“选修”这一联系增加了一个“成绩”属性。

以上三个例子都仅涉及到两个实体,但实际上一个信息管理领域通常都会涉及到多个实体及其联系,这时就需要将一些小的局部E-R图进行集成。图6.5就是对上述三个E -R图集成后得到的一个总体的反映学生、班级、班主任和课程之间的全局E-R图。

img115

图6.5 集成的E-R图举例

需要说明的一点是,E-R图是对现实世界进行抽象的工具,在画E-R图时应从现实世界出发,根据具体的信息管理要求来设计系统需要包含的实体集、每个实体集的属性以及实体之间的联系方式。有时同一个实体在不同的应用中所要描述的属性可能不同,如在学籍管理系统中,学生的属性可能只要包括学号、姓名、性别、出生年月、所在系、专业即可,但是如果是学校医院管理系统中所存放的学生信息,则可能除了上述属性外还得包含学生的身高、体重、血型等与健康有关的信息。另外,有时同样的两个实体集在不同的语义条件下可能其联系方式也不一样,如假设规定每位教师只能上一门课,同一门课可以由多个教师上,则教师和课程之间是多对一的联系;但是如果规定每位教师能上多门课,同一门课也可以由多个教师上,则教师和课程之间是多对多的联系,所以在设计E-R图时要注意语义约束。

总之,概念数据模型是对现实世界需求的第一层描述,是计算机专业人员与用户之间进行交流的工具,与具体的DBMS无关。数据库设计人员应该在这一阶段利用E-R模型确定用户的信息管理内容,如包含哪些实体集、每个实体集具有哪些属性、实体集之间的联系方式如何等,只有把这些内容确定下来之后,数据库设计人员才可以建立数据库的逻辑数据模型,进而建立数据库的物理数据模型,从而完成数据库的框架结构的建立。