



1.1 数据库系统与数据模型
数据库系统本质上是一个使用计算机存储记录的系统,其本身可被看作一种电子文件柜;也就是说,它是收集计算机数据文件的仓库或容器。系统用户可以对这些文件执行一系列的操作。
1.1.1 基本术语
本节将对数据库中经常使用的一些术语进行简单介绍。
1.数据(Data)
描述事物的符号记录称为数据。数据是数据库中存储的基本对象,其种类很多,主要包括文字、图形、图像、声音等,它们都可以经过数字化后存入计算机。
2.数据库(Database,DB)
数据库,顾名思义,就是存放数据的仓库。过去人们把数据放在文件柜里,现在人们借助计算机和数据库技术,科学地保存和管理大量复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。
所谓数据库就是长期存储在计算机内、有组织、可共享的数据集合,数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户所共享。
3.数据库管理系统(Database Management System,DBMS)
数据库管理系统是指在数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。数据库系统的一切操作,包括查询、更新以及各种控制,都是通过DBMS进行的。
DBMS总是基于某种数据模型,因此可以把它看成某种数据模型在计算机系统上的具体实现。数据库管理系统是数据库系统的一个重要组成部分,它为用户提供一个方便、有效地存取数据库信息的环境。
4.数据库系统(Database System)
数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。应当指出的是,数据库的建立、使用和维护等工作只靠一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员(Database Administrator,DBA)。数据库系统的构成如图 1.1 所示。
图 1.1 数据库系统的构成
1.1.2 数据库技术的发展
数据库主要用于数据处理。随着数据处理量的不断增加,数据管理技术应运而生,其演变过程随着计算机硬件和软件的发展,大体经历了文件系统、层次模型和网状模型数据库系统、关系模型数据库系统以及新一代数据库系统几个阶段。
1.文件系统
在数据库系统出现前,数据以文件为单位,与计算机程序脱离,由操作系统统一管理。用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,实现了以文件为单位的共享。
由于数据的组织仍然是面向程序的,所以存在大量的数据冗余,且不能方便地修改和扩充数据的逻辑结构。同时,由于文件之间是相互孤立的,因而它们不能反映现实世界中事物之间的联系。文件系统阶段程序与数据的关系如图 1.2 所示。
图 1.2 文件系统阶段程序与数据的关系
2.层次模型和网状模型数据库系统
层次模型和网状模型数据库系统也称为第一代数据库,其先驱是 1969 年IBM提出的层次数据库模型。该数据库系统以有向图为基础,一次存取一条记录,采用的是过程化的存取方法。简单的层次模型和网状模型数据库系统存储的数据结构如图 1.3 所示。
图 1.3 简单的层次模型和网状模型数据库系统存储的数据结构
3.关系模型数据库系统
关系模型数据库系统也称为第二代数据库,诞生于 20 世纪 70 年代。首先由IBM提出了关系模型,奠定了关系数据库技术的基础;而IBM、System R和Berkeley Ingres等系统的出现,标志着关系模型数据库的成熟。
关系模型数据库系统以集合代数为基础,一次一个集合地存取数据,采用的是非过程化的存取方法。目前广泛使用的数据库软件都是基于关系模型的关系数据库管理系统。关系模型是现代数据库产品最广泛实现的模型,而且正是关系模型构成了SQL的基础。
关系模型与以往的模型不同,它是建立在严格的数学概念基础上的。在用户看来,关系模型中数据的逻辑结构是一个二维表,它由行和列组成。现以图 1.4 所示的学生登记表为例,简单介绍一下关系模型中的一些术语。
图 1.4 关系模型的表结构
◆ 关系(Relation): 一个关系通常对应一个表,如图 1.4 所示的表。
◆ 元组(Tuple): 表中的一行即为一个元组。
◆ 属性(Attribute): 表中的一列即为一个属性,给每一个属性起一个名称即为属性名;如图1.4 所示的表中有 6 列,对应 6 个属性(学号、姓名、年龄、性别、系名和年级)。
◆ 主键(Key): 表中的某个属性组,可以唯一确定一个元组;如图 1.4 所示的表中的学号,可以唯一确定一个学生,也就成为本关系的主键。
◆ 域(Domain): 属性的取值范围,如人的年龄一般在 1~150 岁之间,性别的域是(男,女)。
◆ 分量: 元组中的一个属性值。
◆ 关系模式: 对关系的描述,一般表示为:关系名(属性 1,属性 2,…,属性 n )。例如,上面的关系可描述为:学生(学号,姓名,年龄,性别,系名,年级)。
关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表。
4.新一代数据库系统
随着新领域CAD、CAM、地理信息系统(GIS)、知识库系统、实时系统的出现和发展,对数据库系统提出了更高的功能要求,如存储和处理复杂对象,支持复杂数据类型,对常驻内存的对象管理及支持大量对象的存取和计算,实现程序设计语言和数据库语言无缝地集成,支持长事务和嵌套事务的处理等。而传统数据库系统由于其自身的局限性很难实现上述功能,因此提出了新一代数据库技术,即第三代数据库系统的概念。
第三代数据库系统对数据模型有了新的发展。数据库技术与其他相关技术相结合,如与分布处理技术相结合,出现了分布式数据库;与面向对象技术相结合,出现了面向对象数据库等。另外,数据库技术被应用到特定的领域中,出现了许多新的面向领域的数据库技术,如应用于CAD、CAM和CIM等领域的工程数据库、统计数据库和空间数据库等。
总之,第三代数据库系统还处于发展阶段,其研究目标是提出一个支持各种应用领域的统一的数据库系统。
1.1.3 数据模型
数据库中存储的是数据,这些数据反映了现实世界中有意义、有价值的信息,它不仅反映数据本身的内容,而且反映数据之间的联系。那么如何抽象表示、处理现实世界中的数据和信息呢?这就需要使用数据模型这个工具。数据模型是数据库中用于提供信息表示和操作手段的形式框架,它是将现实世界转换为数据世界的桥梁。
数据模型是数据库系统的核心和基础,如前面提到的网状模型、层次模型、关系模型等。各种机器上实现的DBMS软件都是基于某种数据模型的。该模型包括 3 种基本要素:数据结构、数据操作和完整性约束。
1.数据结构
数据结构是描述系统的静态特性,即组成数据库的对象类型。它包括以下两个方面。
◆ 数据本身: 类型、内容、性质。例如,关系模型中的域、属性、关系等。
◆ 数据之间的联系: 数据之间是如何相互关联的。例如,关系模型中的主键、外键之间的联系等。
在数据库系统中,一般按数据结构的类型来命名数据模型。
2.数据操作
数据操作描述系统的动态特性,即对数据库中对象的实例允许执行的操作集合,包括操作及操作规则。一般有检索、更新(插入、删除、修改)操作。数据模型要定义操作含义、操作符号、操作规则,以及实现操作的语言。
3.完整性约束
数据的约束条件是完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确、有效、相容。例如,关系模型中的实体完整性、参照完整性、用户定义完整性等。