
1.1 数据库概述
在学习数据库技术前,我们首先要了解一些与数据库技术密切相关的几个基本概念:数据、数据处理、数据库、数据库管理系统、数据库系统、数据模型。
1.1.1 数据与数据处理
1. 相关概念
(1)数据
数据是存储在数据库中的基本对象,是人们用于描述客观事物的符号记录。数字是最常见的数据,如93、¥729等。
其实,数据有多种表现形式。描述事物的符号,比如数字、文字、声音、图像、音频、视频等,都是数据。它们经过数字化处理后存入计算机。
(2)信息
信息是经过加工处理的具有一定含义的数据,是对决策者有价值的数据。
信息和数据既有联系,又有区别。一方面,数据是信息的表现形式,是信息的载体;信息是有用的数据,是数据的内涵。另一方面,信息不随表示它的数据形式而改变,是反映客观现实世界的数据;而数据则有任意性,用不同的数据形式可以表示同样的信息。例如,一个城市的天气预报情况是一条信息,而描述信息的数据形式可以是文字、图像或声音等。
(3)数据处理
数据库技术是数据管理的最新技术,而数据管理是数据处理的核心问题。数据处理就是把数据转换成信息的过程,包括对数据的收集、存储、分类、计算、加工、检索、传播等一系列活动。数据处理的目的之一是从大量原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据;目的之二是借助计算机科学地保存和管理复杂的大量数据,以便人们能方便且充分地利用这些宝贵的信息资源。
例如,全体学生的各科考试成绩(属于原始数据)记录了考生的考试情况,对考试成绩分班统计(属于数据处理),可以将统计结果(属于信息)作为任课教师教学水平评价的依据之一。
2. 数据管理技术的产生和发展
在应用需求的推动下,随着计算机硬件、软件技术的发展,数据管理技术经历了3个阶段,分别为人工管理阶段、文件系统阶段、数据库系统阶段。
(1)人工管理阶段
20世纪50年代以前,计算机主要用于科学计算。因为数据量少,所以一般无须长期保存数据。当时,在硬件上,没有磁盘等直接存取的外存设备;在软件上,没有操作系统,没有进行数据管理的专门软件。因此,当时的数据由程序员进行人工管理。
人工管理阶段的特点如下。
① 数据与处理数据的程序密切相关,彼此不独立。每个应用程序都包括数据的存储结构、存取方法、输入/输出方式等。存储结构改变时,应用程序需要做相应调整,程序与数据之间相互依赖,不独立。
② 数据不保存。计算机主要用于科学计算,一般不需要保存数据。计算机将数据输入,计算后将结果输出。
③ 数据不共享。程序中要用到的数据被直接写在程序代码里,一组数据对应一个程序,数据是面向程序的,如图1-1所示。

图1-1 人工管理阶段程序和数据之间的对应关系
(2)文件系统阶段
20世纪50年代后期到20世纪60年代中期,计算机的应用范围逐渐扩大,大量地应用于管理中。这时,硬件方面出现了直接存取的大容量外存设备,如磁盘等;软件方面出现了专门的数据管理软件——操作系统,处理方式上不仅有了文件批处理,而且能够联机实时处理。从此,进入了文件系统管理阶段。
文件系统阶段的特点如下。
① 数据可以长期保存。数据可以存放在外存设备(如磁盘)上。
② 由文件系统管理数据。数据的管理由文件系统负责,程序和数据之间由软件提供的存取方法进行转化。
文件系统仍存在的缺点如下。
① 数据共享性差,冗余度高。在文件系统中,一个文件基本上对应一个应用程序,即文件仍然是面向应用的,如图1-2所示。

图1-2 文件系统阶段程序和数据之间的对应关系
② 数据独立性差。虽然文件系统进行文件的存取管理,但是应用程序依赖于文件的存储结构,修改文件存储结构就要修改程序,应用程序与数据之间独立性差。数据的物理表示方式和有关的存取技术在应用程序中要加以考虑和体现。
(3)数据库系统阶段
20世纪60年代后期,计算机管理的对象规模更加庞大,应用范围越来越广,数据量急剧增长,对数据共享的要求越来越强烈。这时,硬件已有大容量磁盘,且硬件价格下降,软件价格上升。在这种背景下,出现了数据库管理系统。
采用数据库来管理数据的诸多优点如下。
① 实现了数据共享,减少了数据冗余。多个应用程序可以共享同一个数据库中的数据。
② 数据独立性强。数据的管理由数据库管理系统来完成。当数据的存储结构和存取方法发生变化时,应用程序无须修改,实现了数据独立性。应用程序与数据库之间的关系如图1-3所示。

图1-3 应用程序与数据库的关系
1.1.2 数据库系统
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统及其开发工具、应用系统、数据库管理员构成,如图1-4所示。

图1-4 数据库系统的组成
1. 数据库
数据库(DataBase,DB)可以通俗地理解为存放数据的仓库。严格地讲,数据库是按照特定的组织方式长期储存在计算机内的可共享的数据集合。
例如,学校学生成绩管理数据库中有组织地存放了学生的基本情况、课程情况、学生成绩情况、授课教师情况等内容,可供教务处、班主任、任课教师和学生共同使用。
数据库中的数据具有较低的冗余度、较强的数据独立性和易扩展性,并可为各种用户共享。
2. 数据库管理系统
数据库管理系统(DataBase Management System,DBMS)是位于用户与操作系统之间的数据管理软件,帮助用户建立、使用和管理数据库。
数据库管理系统是系统软件,主要功能包括以下几个方面。
(1)数据定义功能
DBMS提供数据定义语言(Data Definition Language,DDL),可被用来对数据库中的数据对象进行定义,如对数据库、表、索引进行定义。
(2)数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML),可被用来实现对数据库的基本操作,如对表中数据的查询、插入、删除和修改等操作。
(3)数据控制功能
DBMS提供数据控制语言(Data Control Language,DCL),可被用来实现对数据库的安全性和完整性控制,实现并发控制和故障恢复。
(4)数据库的建立和维护功能
数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库重新组织功能,性能监视、分析功能等。
3. 数据库管理员
数据库管理员(DataBase Administrator,DBA)是负责全面控制和管理数据库系统的工作人员。
4. 数据库系统的基本特点
数据库系统始于文件系统,两者都以数据文件的形式组织数据。数据库系统由于引入了DBMS管理,与文件系统相比具有以下特点。
(1)数据的结构化
数据的结构化是数据库与文件系统的根本区别。在数据库系统中,数据是面向整体的,不但数据内部组织有一定的结构,而且数据之间的联系也按一定的结构描述出来,所以数据整体结构化。
(2)数据的高共享性与低冗余性
数据库系统从整体角度看待和描述数据,数据不再面向某个应用,而是面向整个系统。同一组信息,可以被多个应用程序共享使用。这样既可以大大减少数据冗余,节约存储空间,又能够避免数据之间的不相容性和不一致性。
(3)数据的独立性
数据的独立性是指数据与应用程序之间彼此独立,不存在相互依赖的关系。
数据库系统提供了两方面的映像功能,使得程序与数据库中的逻辑结构和物理结构有高度独立性。
(4)数据的统一管理与控制
数据的统一管理与控制包括数据的完整性检查、安全性检查和并发控制等三方面。
数据库管理系统能统一控制数据库的建立、运用和维护,使用户能方便地定义数据和操作数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
1.1.3 数据模型
计算机不能直接处理现实世界中的具体事物,所以人们需要先把具体事物转换成计算机能够处理的数据,即数字化。在数字化的过程中,人们常常先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。
数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据和对数据进行操作的。
根据数据模型应用目的的不同,可以把数据模型分为两类:一类是概念模型,另一类是逻辑模型。
概念模型是按照用户的观点对数据和信息建模,主要用于数据库设计。
逻辑模型是按计算机系统的观点对数据建模,主要用于DBMS的实现。
1. 概念模型
概念模型是用于信息世界的建模,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间交流的语言。
信息世界中涉及的概念有实体、属性、联系等。
(1)实体
客观存在并可相互区别的事物称为实体,如一门课程、一个学生。具有相同属性的实体必然具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体。实体不仅可以指实际的物体,还可以指抽象的事件,如一次借书、一次奖励等。
(2)属性
一个实体具有很多特征,实体具有的某一特征称为属性。例如,学生的属性有学号、姓名、性别等。每个属性可以取不同的值,这些值称为属性值。每一个属性都有一个名字,这个名字称为属性名。
(3)实体间的联系
现实世界中事物之间有联系,这些联系在信息世界被称为实体之间的联系。实体之间的联系分为如下3种。
① 一对一联系(1:1)
如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如,一个班级只有一个学生当班长,一个学生只能在一个班级当班长,则班级和班长之间就是一对一的联系。
② 一对多联系(1:n)
如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。例如,每个班级有多个学生,每个学生只属于一个班级,则班级与学生之间就是一对多的联系。
③ 多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有多个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中也有多个实体与之联系,则称实体集A与实体集B有多对多联系,记为m:n。例如,一个学生可以选修多门课程,每门课程可以有多个学生选修,则课程与学生之间就是多对多的联系。
(4)实体—联系图
表示概念模型的工具有很多,最常用的是实体—联系图(E-R图)。它用图形方式描述实体、实体的属性及实体之间的联系,与计算机系统无关。
① 实体:用矩形表示,矩形框内写明实体名。
② 属性:用椭圆表示,并用直线将其与相应的实体连接起来。
③ 联系:用菱形表示,菱形框内写联系名,并用直线将其分别与有关的实体连接起来,同时在直线旁标上联系的类型。此外,如果联系有属性,则这些属性也要用直线与该联系连接起来。
例如,图1-5表示了学生与课程之间的多对多联系。

图1-5 学生与课程之间的联系
2. 逻辑模型
目前,数据库领域中常用的逻辑数据模型有层次模型、网状模型、关系模型等。
(1)层次模型
层次模型是最早出现的逻辑模型,用树形结构来表示各类实体以及实体间的联系。例如,可用层次模型描述一个机构的组织情况,如图1-6所示。

图1-6 层次模型
(2)网状模型
网状模型用网状结构表示实体以及实体之间的联系。网状模型能够更直接地描述现实世界,但结构复杂,如图1-7所示。

图1-7 网状模型
(3)关系模型
关系模型是目前最重要、应用最广泛的一种逻辑模型。关系模型通过二维表来描述实体以及实体间的联系。例如,表1-1描述了学生实体及学生实体与班级实体之间的联系。
表1-1 关系模型
