1.2 数据模型

计算机不能直接处理现实世界中的具体事物,需要采用数据模型对事物的特征信息进行描述、组织并将其转换成数据,然后按一定方式进行处理。数据模型是数据库系统设计的核心,数据库管理系统的实现通常是建立在某种数据模型的基础之上的。

1.2.1 数据模型中的相关概念

1-4 数据模型中的相关概念

这里主要介绍实体、属性、实体集、实体之间的联系以及E-R图等数据模型中的基本概念。

1.实体

客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念。例如,一个学生、一名教师、一门课程、一本书等。

2.属性

描述实体的特性称为属性。一个实体可以由若干个属性来刻画,如一个学生实体有学号、姓名、性别、出生日期、班级等方面的属性。属性的具体取值称为属性值。例如,某一个男学生实体的“性别”属性的属性值应是“男”。

3.实体集

同类型实体的集合称为实体集。例如,对于“学生”实体来说,全体学生就是一个实体集;对于“课程”实体来说,学校开设的所有课程也是一个实体集。

4.实体之间的联系

实体之间的联系是指两个不同实体集之间的联系。实体集A与实体集B之间的联系可分为3种类型。

·一对一联系(1∶1)。实体集A中的一个实体最多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B之间是一对一联系。例如,一个班级只有一位班长,而一位班长也只能管理一个班级,所以班级和班长两个实体集是一对一联系。

·一对多联系(1∶n)。对于实体集A中的一个实体,实体集B中可以有多个实体与之对应;反之,对于实体集B中的一个实体,实体集A中最多只有一个实体与之对应,则称实体集A与实体集B之间是一对多联系。例如,一个班级有多个学生,而一个学生只能属于一个班级,所以班级和学生两个实体集是一对多联系。

·多对多联系(mn)。对于实体集 A 中的一个实体,实体集 B 中可以有多个实体与之对应;反之,对于实体集B中的一个实体,实体集A中也可以有多个实体与之对应,则称实体集A与实体集B之间是多对多联系。例如,一个学生可以选修多门课程,而一门课程也可以被多个学生选修,所以学生和课程两个实体集是多对多联系。

5.E-R图

实体联系(Entity-Relationship,E-R)方法是使用最广泛的数据模型表示方法,该方法使用E-R图来描述现实世界中的实体(实体集)以及实体之间的联系。E-R图使用3种图形来分别描述实体、属性和联系。

·实体:用矩形表示,矩形内写明实体的名称。

·属性:用椭圆表示,椭圆内写明属性名,并用线条将其与对应的实体连接起来。

·联系:用菱形表示,菱形内写明联系名,并分别用线条将其与有关的实体连接起来,同时标注联系的类型。

图1-10中的E-R图示例从左到右分别显示了学生实体及其属性、班级与班长两个实体集之间的一对一联系、班级与学生两个实体集之间的一对多联系及学生与课程两个实体集之间的多对多联系。

图1-10 E-R图示例

1.2.2 数据模型分类

常用的数据模型有3种类型:层次模型、网状模型和关系模型。

1.层次模型

层次模型是按照层次结构组织数据的数据模型,用树形结构表示实体之间的联系,具有以下两个特点。

(1)有且仅有一个根结点(没有父结点的结点)。

(2)除根结点之外的其他结点有且只有一个父结点。

层次模型只能反映实体间的一对多联系,具有层次清晰、构造简单、处理方便等优点,但不能表示含有多对多联系的复杂结构。图1-11所示为院系数据库的层次模型示例,树根为院系,每一个院系都有自己的学生、开设的课程以及教师。

图1-11 层次模型示例

2.网状模型

网状模型是按照网状结构组织数据的数据模型,易于表现实体间的多对多联系,具有以下两个特点。

(1)允许一个以上的结点没有父结点。

(2)一个结点可以有多个父结点。

网状模型能更好地描述现实世界,但其结构复杂,用户不容易掌握。图1-12所示为学生、教师和课程3个实体之间的联系的网状模型示例。由于学生要学习课程,而教师要讲授课程,所以学生和教师都与课程有联系。

图1-12 网状模型示例

3.关系模型

关系模型是用二维表格来表示实体集及实体之间联系的模型。二维表格由表头和若干行数据组成。用二维表格表示实体集时,一行表示一个实体,一列表示实体的一个属性;用二维表格表示实体之间的联系时,一行表示一个联系,一列表示联系的一个属性。

例如,图1-10中学生和课程两个实体集以及它们之间的多对多联系可以分别用3张二维表格表示。

(1)学生实体集:学生表(学号,姓名,性别,出生日期,班级)

(2)课程实体集:课程表(课程编号,课程名称,学分,开课状态,课程大纲)

(3)学生-课程之间的联系:选课成绩表(学号,课程编号,学年,学期,成绩)

表1-1所示为课程实体集的部分课程信息,表中一行表示一门课程,一列表示一个属性。其他实体集及实体之间的联系的详细信息将在后续章节中详细介绍。

表1-1 课程表

关系模型是建立在严格的数学概念基础上的,自出现以后就迅速发展。基于关系模型建立的数据库称为关系数据库。目前,世界上许多计算机软件开发商都开发了各自的关系数据库管理系统,如美国甲骨文公司的Oracle、美国微软公司的SQL Server、美国Sybase公司的Sybase以及美国IBM公司的DB2等大型的关系数据库管理系统。除此之外,还有一些小型的关系数据库管理系统,如dBase、Visual FoxPro、Access、MySQL等。本书主要介绍Microsoft Office 2016组件中的Access 2016关系数据库管理系统。