
1.2 数据模型
在现实世界中,事物和事物之间是存在联系的,这种联系是客观存在的,是由事物本身的性质所决定的。例如,学校教学系统中的教师、学生、课程、成绩等都是相互关联的。通常把表示客观事物及其联系的数据及结构称为数据模型。
1.2.1 基本概念
1.实体
客观存在并且可以相互区别的事物称为实体。实体可以是实际的事物,如教师、职工、部门、单位等;也可以是抽象的事件,如比赛、订货、选修课程等。
2.实体集
实体集是具有相同类型及相同性质(或属性)实体的集合,例如某个学校的所有学生的集合可以被定义为实体集Students。
3.属性
实体通过一组属性来表示,属性是实体集中每个成员具有的描述性性质。将一个属性赋予某实体集表明数据库为实体集中每个实体存储相似的信息,例如学生可以用学号、姓名、性别、出生日期等属性描述。但对每个属性来说,各实体有自己的属性,即属性被用来描述不同实体间的区别。
4.联系
实体之间的对应关系称为联系,它反映了现实事物之间的相互联系,例如,一位学生可以选学多门课程;一个部门中可以有多个职工。
1.2.2 实体之间的联系
联系可以归纳为以下3类。
1.一对一的联系
若对于实体集A中的每一个实体,都有实体集B中唯一的一个实体与之联系,则称实体集A与实体集B具有一对一的联系。例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门和经理之间具有一对一的联系。
2.一对多的联系
若对于实体集A中的每一个实体,实体集B中有n(n>;0)个实体与之联系,反之,对于实体集B中的每个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多的联系。例如,一个部门有若干名职工,而每名职工只在一个部门工作,则部门与职工之间是一对多的联系。
3.多对多的联系
若对于实体集A中的每一个实体,实体集B中有n(n>;0)个实体与之联系,反之,对于实体集B中的每个实体,实体集A中也有m(m>;0)个实体与之联系,则称实体集A与实体集B具有多对多的联系。例如,学生和选修课程的联系,某个学生可以选修多门课程,某门选修课程也可以被多名学生选修。
1.2.3 数据模型简介
数据库中的数据从整体来看是有结构的,即所谓数据的结构化。各实体以及实体间存在的联系的集合称为数据模型,数据模型的重要任务之一就是指出实体间的联系。按照实体集间的不同联系方式,数据库分为3种数据模型:层次型、网络型和关系型。
1.层次模型
层次模型的结构是树结构,树的节点是实体,树的枝是联系,从上到下为一对多的联系。每个实体由“根”开始沿着不同的分支放在不同的层次上。如果不再向下分支,则此分支中最后的节点称为“叶”。图1-1所示为某系的机构设置,“根”节点是系,“叶”结点是各位教师。

图1-1 树结构与层次模型
支持层次模型的数据库管理系统称为层次数据库管理系统,其中的数据库称为层次数据库。
2.网状模型
用网形结构表示实体及其之间联系的模型称为网状模型。在网状模型中,每一个节点代表一个实体,并且允许节点有多于一个的“父”节点。这样网状模型代表了多对多的联系类型,如图1-2所示。

图1-2 网形结构与网状模型
支持网状模型的数据库管理系统称为网状数据库管理系统,其中的数据库称为网状数据库。
3.关系模型
关系模型是以数学理论为基础构造的数据模型,它用二维表格来表示实体集中实体之间的联系。在关系模型中,操作的对象和结果都是二维表(即关系),表格与表格之间通过相同的栏目建立联系。
关系模型有很强的数据表示能力和坚实的数学理论,且结构单一,数据操作方便,最易被用户接受,以关系模型建立的关系数据库是目前应用最广泛的数据库。由于关系数据库的许多优秀功能,层次数据库和网状数据库均已失去其重要性。