1.2 数据库系统
本节讨论数据库系统的构成,数据库系统的特点,数据库的发展过程以及数据管理技术的发展。
1.2.1 数据库系统的构成
数据库技术所要解决的基本问题如下。
1)如何抽象现实世界中的对象,如何表达数据以及数据之间的联系。
2)如何方便、有效地维护和利用数据。
通常意义下,数据库是数据的集合。一个数据库系统的主要组成部分是数据、数据库、数据库管理系统、应用程序及用户。数据存储在数据库中,用户和用户应用程序通过数据库管理系统对数据库中的数据进行管理和操作。
1.数据
数据(Data)是对客观事物的抽象描述。数据是信息的具体表现形式,信息包含在数据之中。数据的形式或者说数据的载体是多种多样的,它们可以是数值、文字、图形、图像、声音等。例如,用会计分录描述企业的经济业务,会计分录反映了经济业务的来龙去脉。会计分录就是其所描述的经济业务的抽象,并且是以文字和数值的形式表现的。
数据的形式还不能完全表达数据的内容,数据是有含义的,即数据的语义或数据解释。所以数据和数据的解释是不可分的。例如,(983501011,张捷,女,1978,北京,信息学院)就仅仅是一组数据,如果没有数据解释,读者就无法知道这是一名学生还是一名教师的数据,1978应该是一个年份,但它是出生年份还是参加工作或入学的年份就无法了解了。在关系数据库中,上述数据是一组属性值,属性是它们的语义。
通过对数据进行加工和处理,从数据中获取信息。数据处理通常包括数据采集、数据存储、数据加工、数据检索和数据传输(输出)等环节。
数据的3个范畴分为现实世界、信息世界和计算机世界。数据库设计的过程,就是将数据的表示从现实世界抽象到信息世界(概念模型),再从信息世界转换到计算机世界(数据世界)。
2.数据库
数据库(DataBase)是存储数据的容器。通常,数据库中存储的是一组逻辑相关的数据的集合,并且是企业或组织经过长期积累保存下来的数据集合,是组织的重要资源之一。数据库中的数据按一定的数据模型描述、组织和存储。人们从数据中提取有用信息,信息的积累成为知识,丰富的知识创造出智慧。
3.数据库管理系统
数据库管理系统(DataBase Management System,DBMS)是一类系统软件,提供能够科学地组织和存储数据、高效地获取和维护数据的环境。其主要功能包括数据定义、数据查询、数据操纵、数据控制、数据库运行管理、数据库的建立和维护等。DBMS一般由软件厂商提供,如Microsoft公司的SQL Server和Access等。
4.数据库系统
一个完整的数据库系统(DataBase System,DBS)由保存数据的数据库、数据库管理系统、用户应用程序和用户组成,如图1-1所示。DBMS是数据库系统的核心。用户以及应用程序都是通过数据库管理系统对数据库中的数据进行访问的。
图1-1 数据库系统组成
通常一个数据库系统应该具备如下功能。
1)提供数据定义语言,允许使用者建立新的数据库并建立数据的逻辑结构(Logical Structure)。
2)提供数据查询语言。
3)提供数据操纵语言。
4)支持大量数据存储。
5)控制并发送访问。
1.2.2 数据库系统的特点
数据库系统具有如下特点。
1.数据结构化
数据库中的数据是结构化的。这种结构化就是数据库管理系统所支持的数据模型。使用数据模型描述数据时,不仅描述了数据本身,同时描述了数据之间的联系。按照应用的需要,建立一种全局的数据结构,从而构成了一个内部紧密联系的数据整体。关系数据库管理系统支持关系数据模型,关系模型的数据结构是关系——满足一定条件的二维表格。
2.数据高度共享、低冗余度、易扩充
数据的共享度直接关系到数据的冗余度。数据库系统从整体角度看待和描述数据,数据不再面向某个应用,而是面向整个系统。因此,数据库中的数据可以高度共享。数据的高度共享本身就减少了数据的冗余,同时确保了数据的一致性,同一数据在系统中的多处引用是一致的。
3.数据独立
数据的独立性是指数据库系统中的数据与应用程序之间是互不依赖的。数据库系统提供了两方面的映像功能,从而使数据既具有物理独立性,又具有逻辑独立性。
数据库系统的一个映像功能是数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映像或转换功能。这一映像功能保证了当数据的总体逻辑结构改变时,通过对映像的相应改变可以保持数据的局部逻辑结构不变。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。这就是数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据库系统的另一映像功能是数据的存储结构与逻辑结构之间的映像或转换功能。这一映像功能保证了当数据的存储结构(或物理结构)改变时,通过对映像的相应改变可以保持数据的逻辑结构不变,从而应用程序也不必改变。这就是数据与程序的物理独立性,简称数据的物理独立性。
4.数据由数据库管理系统统一管理和控制
DBMS提供以下几方面的数据管理与控制功能。
(1)数据安全性
数据安全性(Security)是指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定权限对某些数据以某种方式进行访问和处理。例如,部分用户对学生成绩只能查阅不能修改。
(2)数据完整性
数据完整性(Integrity)是指数据的正确性、有效性、相容性和一致性,即将数据控制在有效的范围内,或要求数据之间满足一定的关系。
(3)并发控制
当多用户的并发(Concurrency)进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果,并使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。
(4)数据库恢复
计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏都会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称为完整状态或一致状态)的能力,这就是数据库的恢复(Recovery)功能。
1.2.3 数据库的发展过程
美国学者詹姆斯·马丁在其《信息工程》和《总体数据规划方法论》中,将数据环境分为4种类型,阐述了数据管理即数据库的发展过程。
(1)数据文件
在数据库管理系统出现之前,程序员根据应用的需要,用程序语言分散地设计应用所需要的各种数据文件。数据组织技术相对简单,但是随着应用程序的增加,数据文件的数量也在不断增加,最终会导致很高的维护成本。数据文件阶段,会为每一个应用程序建立各自的数据文件,数据是分离的、孤立的,并且随着应用的增加,数据被不断地重复,数据不能被应用程序所共享。
(2)应用数据库
意识到数据文件带来的各种各样的问题,于是就有了数据库管理系统。但是各个应用系统的建立依然是“各自为政”,每个应用系统建立自己的数据库文件。随着应用系统的建立,孤立的数据库文件也在增加,“数据孤岛”产生,数据仍然在被不断地重复,数据不能共享,并且导致了数据的不一致和不准确。
(3)主题数据库
主题数据库是面向业务主题的数据组织存储方式,即按照业务主题重组有关数据,而不是按照原来的各种登记表和统计报表来建立数据库。它强调信息共享(不是信息私有或部门所有)。主题数据库是对各个应用系统“自建自用”数据库的彻底否定,强调各个应用系统“共建共用”的共享数据库;所有源数据一次、一处输入系统(不是多次、多处输入系统)。同一数据必须一次、一处进入系统,保证其准确性、及时性和完整性,经由网络-计算机-数据库系统,可以多次、多处使用;主题数据库由基础表组成,基础表具有如下特性:原子性(表中的数据项是数据元素)、演绎性(可由表中的数据生成全部输出数据)和规范性(表中数据结构满足三范式要求)。
(4)数据仓库
数据仓库是将从多个数据源收集的信息进行存储,存放在一个一致的模式下。数据仓库通过数据清理、数据变换、数据集成、数据装入和定期数据刷新来构造。建立数据仓库的目的是进行数据挖掘。
数据挖掘是从海量数据中提取出知识。数据挖掘是以数据仓库中的数据为对象,以数据挖掘算法为手段,最终以获得的模式或规则为结果,并通过展示环节表示出来。
1.2.4 数据管理技术的发展
计算机数据管理随着计算机硬件、软件技术和计算机应用范围的发展而不断发展,经历了人工管理阶段、文件系统阶段和数据库技术阶段3个阶段。对数据管理是为了对数据进行处理,数据处理的过程包括数据收集、存储、加工和检索等过程。
1.人工管理阶段
20世纪50年代中期以前,计算机主要用于数值计算。从硬件系统看,当时的外存储设备只有纸带、卡片、磁带,没有直接存取设备;从软件系统看,没有操作系统以及管理数据的软件;从数据看,数据量小,数据无结构,由用户直接管理,且数据间缺乏逻辑组织,数据依赖于特定的应用程序,缺乏独立性。人工管理数据阶段的特点如下。
●数据不能保存:一个目标计算完成后,程序和数据都不能被保存。
●应用程序管理数据:应用程序与数据之间缺少独立性。
●数据不能共享:数据是面向应用的,一组数据只能对应一个程序。
●数据不具有独立性:数据结构改变后,应用程序必须修改。
2.文件系统阶段
20世纪50年代后期到60年代中后期,计算机应用从科学计算发展到科学计算和数据处理。1954年出现了第一台商业数据处理的电子计算机UNIVACI,标志着计算机开始应用于以加工数据为主的事务处理阶段。基于计算机的数据处理系统也就从此迅速发展起来。这个阶段,硬件系统出现了磁鼓、磁盘等直接存取数据的存储设备;软件系统有了文件系统,处理方式也从批处理发展到了联机实时处理。文件系统阶段的数据管理特点如下。
●数据可以长期保存:数据能够保存在存储设备上,可以对数据进行各种数据处理操作,包括查询、修改、增加、删除操作等。
●文件系统管理数据:数据以文件形式存储在存储设备上,有专门的文件系统软件对数据文件进行管理,应用程序按文件名访问数据文件,按记录进行存取,可以对数据文件进行数据操作。应用程序通过文件系统访问数据文件,使得程序与数据之间具有一定的独立性。
●数据共享差、数据冗余大:仍然是一个应用程序对应一个数据文件(集),即便是多个应用程序需要处理部分相同的数据时,也必须访问各自的数据文件,由此造成数据的冗余,并可能导致数据不一致;数据不能共享。
●数据独立性不好:数据文件与应用程序一一对应,数据文件改变时,应用程序就需要改变;同样,应用程序改变时,数据文件也需要改变。
3.数据库技术阶段
20世纪70年代开始有了专门进行数据组织和管理的软件—数据库管理系统,特别在20世纪80年代后期到20世纪90年代,由于金融和商业的需求,数据库管理系统得到了迅猛的发展。数据库管理系统管理数据具有如下特点。
●数据结构化。
●数据共享性高,冗余度低,易扩充。
●数据独立性高。
●数据由DBMS统一管理,DBMS具有完备的数据管理和控制功能。