1.2 数据模型
数据库需要根据应用系统中数据的性质、内在联系,按照管理的要求来设计和组织。数据模型就是从现实世界到机器世界的一个中间层。现实世界的事物反映到人的大脑,人们把这些事物抽象为一种既不依赖于具体的计算机系统又不为某一数据库管理系统支持的概念模型,然后再把概念模型转换为计算机上某一数据库管理系统支持的数据模型。
1.2.1 组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束三部分组成。
1.数据结构
数据结构是研究存储在数据库中的对象类型的集合,这些对象类型是数据库的组成部分。数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作与约束均建立在数据结构上。不同数据结构有不同的操作与约束,因此,一般数据模型均以数据结构的不同而分类。
数据库系统是按数据结构的类型来组织数据的,因此数据库系统通常按照数据结构的类型来命名数据模型,如层次结构、网状结构和关系结构的模型分别命名为层次模型、网状模型和关系模型。
2.数据操作
数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作和有关操作的规则。例如插入、删除、修改、检索、更新等操作,数据模型要定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言等。
3.数据的完整性约束
数据的约束条件是完整性规则的集合,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型中的数据及其联系都要遵循完整性规则的制约。
另外,数据模型应该提供定义完整性约束条件的机制以反映某一应用所涉及的数据必须遵守的特定的语义约束条件。
1.2.2 概念模型
1.基本概念
数据的描述既要符合客观现实,又要适应数据库原理与结构,同时也要适应计算机原理与结构。进一步说,由于计算机不能够直接处理现实世界中的具体事物,所以人们必须将客观存在的具体事物进行有效的描述与刻画,转换成计算机能够处理的数据,这一转换过程可分为3个数据范畴:现实世界、信息世界和计算机世界。
从现实世界到计算机世界的描述,数据的转换过程如图1-6所示。
图1-6 数据的转换过程
1)现实世界
用户为了某种需要,需将现实世界中的部分需求用数据库实现,这样,我们所见到的是客观世界中的画定边界的一部分环境,它称为现实世界。
2)信息世界
信息世界又称概念世界,是通过抽象,对现实世界进行数据库级上的刻画所构成的逻辑模型。信息世界与数据库的具体模型有关,如层次、网状、关系模型等。
人们从现实世界抽象各种事物到信息世界时,通常采用实体来描述现实世界中具体的事物或事物之间的联系。
(1)实体。客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如学生、课程、教师都是属于实际存在的事物,而学生选课就是比较抽象的事物,是由学生和课程之间的联系而产生的。
(2)实体的属性。描述实体的特性称为属性。一个实体可以由若干个属性来刻画,如一个学生实体有学号、姓名、性别、出生日期等方面的属性。属性有属性名和属性值,属性的具体取值称为属性值。例如,对某一学生的“性别”属性取值“女”,其中“性别”为属性名,“女”为属性值。
(3)实体集和实体型。同类型的实体的集合称为实体集。例如,对于“学生”实体来说,全体学生就是一个实体集。
属性的集合表示一个实体的类型,称为实体型。例如,学生(学号,姓名,性别,出生日期,所属院系)就是一个实体型。
属性值的集合表示一个实体。例如,属性值的集合(201301001,李文建,男,1996-11-23,计算机科学与技术学院)就是代表一个具体的学生。
3)计算机世界
在信息世界基础上致力于其在计算机物理机构上的描述,从而形成的物理模型称为计算机世界。现实世界的要求只有在计算机世界中才能得到真正的物理实现,而这种实现是通过信息世界逐步转化得到的。
2.实体联系模型(E-R模型)
实体联系模型又称E-R模型或E-R图,它是描述概念世界、建立概念模型的工具。
E-R图包括3个要素:
(1)实体。用矩形框表示,框内标注实体名称。
(2)属性。用椭圆形表示,框内标注属性名。E-R图中用连线将椭圆形与矩形框(实体)连接起来。
(3)实体之间的联系。用菱形框表示,框内标注联系名称。E-R图中用连线将菱形框与有关矩形框(实体)相连,并在连线上注明实体间的联系类型。图1-7所示为两个简单的E-R图。
图1-7 两个简单的E-R图
实体之间的对应关系称为联系,它反映现实世界之间的相互联系。两个实体(通常是指两个实体集)间的联系有以下3种类型:
(1)一对一联系。实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B之间为一对一的联系,记作1:1。例如,一个学校只有一个校长,一个校长只能管理一个学校。
(2)一对多联系。如果对于实体集A中的每一个实体,实体集B中有多个实体与之对应;反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之对应,则称实体集A与实体集B之间为一对多联系,记为1:n。例如,学校的一个系有多个专业,而一个专业只属于一个系。
(3)多对多联系。如果对于实体集A中的每一个实体,实体集B中有多个实体与之对应;反之,对于实体集B中的每一个实体,实体集A中也有多个实体与之对应,则称实体集A与实体集B之间为多对多联系,记为m:n。例如,一个学生可以选修多门课程,一门课程可以被多名学生选修。
1.2.3 三种数据模型
数据模型是从现实世界到机器世界的一个中间层次。现实世界的事物反映到人的大脑中,人们把这些事物抽象为一种既不依赖于具体的计算机系统又不依赖于具体的DBMS的概念模型,然后,再把该概念模型转换为计算机中某个DBMS所支持的数据模型。
数据模型是实现数据抽象的主要工具。它决定了数据库系统的结构、数据定义语言和数据操纵语言、数据库设计方法、数据库管理系统软件的设计与实现。常见的数据模型有3种:层次模型、网状模型和关系模型。根据这3种数据模型建立的数据库分别为层次数据库、网状数据库和关系数据库。
1.层次模型
层次模型是数据库系统中最早采用的数据模型,它是通过从属关系结构表示数据间的联系,层次模型是有向“树”结构。层次数据库模型的代表是IBM公司的IMS(Information Management System)数据库管理系统。
1)层次模型的数据结构
现实世界中许多实体之间的联系本来就呈现一种很自然的层次关系,如行政机构、家族关系等。
图1-8所示为一个层次模型的例子。该模型描述了一个学院的组成情况。该层次模型有5个记录型:学院、系部、班级、教师和学生。一个学院下设多个系部,一个系部里有若干教师,一个学院有若干班级,一个班级有若干学生。
图1-8 层次模型
2)层次模型的特征
在层次模型中,树状结构的每个结点是一个记录类型,每个记录类型可包含若干字段。记录之间的联系用结点之间的连线表示。上层的结点称为父结点或双亲结点,下层结点称为子结点或子女结点。这些结点有如下特征:
(1)有且仅有一个结点没有父结点,这个结点称为根结点。
(2)根结点以外的子结点,向上有且仅有一个父结点,向下可有若干子结点。
2.网状模型
网状模型是层次模型的扩展,它表示多个从属关系的层次结构,呈现一种交叉关系的网络结构,网状模型是有向“图”结构。网状数据模型的典型代表是DBTG系统,也称CODASYL系统。但它并非实际的数据库管理系统,它所提出的基本概念、方法和技术对于网状数据库系统的发展产生了重大影响。
1)网状数据模型的数据结构
网状数据模型是一种比层次模型更具普遍性的数据结构,它去掉了层次模型中的两个限制:
(1)允许多个结点没有父结点。
(2)一个结点可以有多个父结点。
图1-9所示是网状模型的一个例子。在该例子中,教师和学生都与课程有联系,教师要讲授课程,学生要学习课程,课程有两个父结点。
图1-9 网状模型
2)网状数据模型的特征
网状数据模型的特征如下:
(1)可以有一个以上的结点无父结点。
(2)允许结点有多个父结点。
(3)结点之间允许有两种或两种以上的联系。
3.关系模型
关系数据模型(简称关系模型)以二维表的方式组织数据,如表1-1所示。关系模型建立在严格的数学概念基础之上,发展迅速。20世纪80年代以来,几乎所有的数据库系统都是建立在关系模型之上。
表1-1 “学生”表