
1.2 数据库技术的发展
数据库系统的核心任务是数据管理,但数据库技术并不是一开始就有的。计算机技术的发展和数据处理的现实需要,促使数据管理技术得到了极大发展,从而有效地提高了数据处理的应用水平。数据管理技术经历了人工管理、文件管理、数据库管理和新型数据库系统4个发展阶段。
1.2.1 人工管理阶段
20世纪50年代中期以前,计算机主要应用于科学计算,虽然那时也有数据管理的问题,但当时的数据管理是以人工管理方式进行的。在硬件方面,外存储器只有磁带、卡片和纸带等,没有磁盘等外存储器。在软件方面,只有汇编语言,没有操作系统,也没有对数据进行管理的软件。数据处理方式基本上是批处理。在人工管理阶段,数据管理的特点如下。
(1)数据不保存
人工管理阶段处理的数据量较少,一般不需要将数据长期保存,只是在计算时将数据随应用程序一起输入,计算完后将结果输出,数据和应用程序一起从内存中被释放。若要再次进行计算,则需重新输入数据和应用程序。
(2)由应用程序管理数据
系统没有专用的软件对数据进行管理,数据需要由应用程序自行管理。每个应用程序不仅要规定数据的逻辑结构,而且要设计数据的存储结构及输入/输出方法等,程序设计任务繁重。
(3)数据有冗余,无法实现共享
应用程序与数据是一个整体,一个应用程序中的数据无法被其他应用程序使用,因此,应用程序与应用程序之间存在大量的重复数据,数据无法实现共享。
(4)数据对应用程序不具有独立性
由于应用程序对数据的依赖性,数据的逻辑结构或存储结构一旦有所改变,就必须修改相应的应用程序,这就进一步加重了程序设计的负担。
1.2.2 文件管理阶段
20世纪50年代后期至20世纪60年代中期,计算机开始大量用于数据管理。硬件方面出现了直接存取的大容量外存储器,如磁盘、磁鼓等,这为计算机进行数据管理提供了物质基础。软件方面出现了操作系统和高级语言。其中,操作系统中的文件系统专门用于管理数据,这又为数据管理提供了技术支持。数据处理方式上不仅有批处理,而且有联机实时处理。
数据处理应用程序利用操作系统的文件管理功能,将相关数据按一定的规则构成文件,并通过文件系统对文件中的数据进行存取和管理。其特点可概括为如下两点。
(1)数据可以长期保存
文件系统为应用程序和数据之间提供了一个公共接口,使应用程序采用统一的存取方法来存取和操作数据。数据可以组织成文件,能够长期保存、反复使用。
(2)数据相对应用程序具有一定的独立性
应用程序和数据不再是一个整体,而是通过文件系统把数据组织成一个独立的数据文件,由文件系统对数据的存取进行管理。程序员只须通过文件名来访问数据文件,而不必过多考虑数据的物理存储细节,因此,程序员可集中精力进行算法设计,并大大减少了应用程序维护的工作量。
文件管理使计算机在数据管理方面有了长足的进步,时至今日,文件系统仍是一般高级语言普遍采用的数据管理方式。然而,当数据量增加、使用数据的用户越来越多时,文件管理便不能适应更有效地使用数据的需要了,其症结表现在3个方面。
(1)数据的共享性差、冗余度大,容易造成数据不一致
数据文件是根据应用程序的需要而建立的,即使不同的应用程序所使用的数据有相同的部分,也必须建立各自的数据文件,即数据不能共享,造成大量数据重复。这样不仅浪费存储空间,而且使数据修改变得困难,容易产生数据不一致等问题,即同样的数据在不同的文件中所存储的数值不同,造成矛盾。
(2)数据独立性差
在文件系统中,尽管数据相对应用程序具有一定的独立性,但这种独立性主要是针对某一特定应用而言的。就整个应用系统而言,文件系统还未能彻底体现数据逻辑结构独立于数据存储的物理结构的要求。在文件系统中,数据和应用程序是互相依赖的,即应用程序的编写与数据组织方式有关,如果改变数据的组织方式,就必须修改应用程序;而应用程序发生变化,如改用另一种程序设计语言来编写应用程序,也必须修改文件的数据结构。
(3)数据之间缺乏有机的联系,缺乏对数据的统一控制和管理
文件系统中各数据文件之间是相互独立的,没有从整体上反映现实世界事物之间的内在联系,因此,很难对数据进行合理的组织以适应不同应用的需要。在同一个应用项目中的各个数据文件没有统一的管理机构,数据完整性和安全性很难得到保证。
1.2.3 数据库管理阶段
20世纪60年代后期,计算机用于数据管理的规模更加庞大,数据量急剧增加,数据共享性要求更加强烈。同时,计算机硬件价格下降,而软件价格上升,编制和维护软件所需的成本相对增加,其中维护成本更高。这些成为数据管理技术在文件管理的基础上发展到数据库管理的原动力。
数据库(DataBase,DB)是按一定的组织方式存储起来的、相互关联的数据集合。在数据库管理阶段,由一种叫作数据库管理系统(DataBase Management System,DBMS)的系统软件来对数据进行统一的控制和管理。数据库管理系统把所有应用程序中使用的相关数据汇集起来,按统一的数据模型存储在数据库中,为各个应用程序所使用。在应用程序和数据库之间保持较高的独立性,数据具有完整性、一致性和安全性高等特点,并且具有充分的共享性,有效地减少了数据冗余。
在数据库管理阶段,数据统一存放在数据库中,数据库面向整个应用系统,实现了数据共享,并且数据库和应用程序之间保持较高的独立性,应用程序与数据库之间的关系如图1-1所示。

图1-1 应用程序与数据库之间的关系
1.2.4 新型数据库系统
数据库技术的发展先后经历了层次数据库、网状数据库和关系数据库。层次数据库和网状数据库可以看作是第1代数据库系统,关系数据库可以看作是第2代数据库系统。自20世纪70年代提出关系数据模型和关系数据库后,数据库技术得到了蓬勃发展,其应用也越来越广泛。但随着应用的不断深入,占主导地位的关系数据库系统已不能满足新的应用领域的需求。例如,在实际应用中,除了需要处理数字、字符数据的简单应用,还需要存储并检索复杂的复合数据(如集合、数组、结构)、多媒体数据、计算机辅助设计绘制的工程图纸和地理信息系统(Geographic Information System,GIS)提供的空间数据等,对于这些复杂数据,关系数据库无法实现对它们的管理。正是实际应用中涌现出的许多问题,促使数据库技术不断向前发展,出现了许多不同类型的新型数据库系统。下面概要性地做一些介绍。
1. 分布式数据库系统
分布式数据库系统(Distributed DataBase System,DDBS)是数据库技术与计算机网络技术、分布式处理技术相结合的产物。分布式数据库系统是系统中的数据地理上分布在计算机网络的不同节点,但逻辑上属于一个整体的数据库系统。分布式数据库系统不同于将数据存储在服务器上供用户共享存取的网络数据库系统,它不仅能支持局部应用(访问本地数据库),而且能支持全局应用(访问异地数据库)。
分布式数据库系统的主要特点如下。
(1)数据是分布的
数据库中的数据分布在计算机网络的不同节点上,而不是集中在一个节点,区别于数据存放在服务器上由各用户共享的网络数据库系统。
(2)数据是逻辑相关的
分布在不同节点的数据逻辑上属于同一数据库系统,数据间存在相互关联,区别于由计算机网络连接的多个独立的数据库系统。
(3)节点的自治性
每个节点都有自己的计算机软/硬件资源,如数据库、数据库管理系统等,因而能够独立地管理局部数据库。局部数据库中的数据不仅可供本节点用户存取使用,还可供其他节点上的用户存取使用,提供全局应用。
2. 面向对象数据库系统
面向对象数据库系统(Object-Oriented DataBase System,OODBS)是将面向对象的模型、方法和机制,与先进的数据库技术有机地结合而形成的新型数据库系统。它从关系模型中脱离出来,强调在数据库框架中发展类型、数据抽象、继承和持久性。面向对象数据库系统的基本设计思想是:一方面把面向对象的程序设计语言向数据库方向扩展,使应用程序能够存取并处理对象;另一方面扩展数据库系统,使其具有面向对象的特征,提供一种综合的语义数据建模概念集,以便对现实世界中复杂应用的实体和联系建模。因此,面向对象数据库系统首先是一个数据库系统,具备数据库系统的基本功能,其次是一个面向对象的系统,针对面向对象的程序设计语言的永久性对象存储管理而设计,充分支持完整的面向对象概念和机制。
3. 多媒体数据库系统
多媒体数据库系统(Multimedia DataBase System,MDBS)是数据库技术与多媒体技术相结合的产物。随着信息技术的发展,数据库应用从传统的企业信息管理扩展到计算机辅助设计(Computer-Aided Design,CAD)、计算机辅助制造(Computer-Aided Manufacture,CAM)、办公自动化(Office Automation,OA)、人工智能(Artificial Intelligent,AI)等多种应用领域。这些领域中要求处理的数据不仅包括传统的数字、字符等格式化数据,还包括大量多种媒体形式的非格式化数据,如图形、图像、声音等。这种能存储和管理多种媒体的数据库称为多媒体数据库。
多媒体数据库的结构及其操作与传统格式化数据库的结构和操作有很大差别。现有数据库管理系统无论从模型的语义描述能力、系统功能、数据操作,还是存储管理、存储方法上,都不能适应非格式化数据的处理要求。综合程序设计语言、人工智能和数据库领域的研究成果,设计支持多媒体数据管理的数据库管理系统已成为数据库领域中一个新的重要研究方向。
在多媒体信息管理环境中,不仅数据本身的结构和存储形式各不相同,而且不同领域对数据处理的要求也比一般事务管理复杂得多,因而对数据库管理系统提出了更高的功能要求。
4. 数据仓库技术
随着信息技术的高速发展,数据库应用规模、范围和深度的不断扩大,一般的事务处理已不能满足应用的需要,企业界需要在大量数据基础上的决策支持,数据仓库(Data Warehouse,DW)技术的兴起满足了这一需求。数据仓库作为决策支持系统(Decision Support System,DSS)的有效解决方案,涉及3方面的技术内容:数据仓库技术、联机分析处理(On Line Analysis Processing,OLAP)技术和数据挖掘(Data Mining,DM)技术。
数据仓库、联机分析处理和数据挖掘是作为3种独立的数据处理技术出现的。数据仓库用于数据的存储和组织;联机分析处理集中于数据的分析;数据挖掘则致力于知识的自动发现。它们都可以分别应用到信息系统的设计和实现中,以提高相应部分的处理能力。但是,由于这3种技术内在的联系性和互补性,将它们结合起来即是一种新的决策支持系统架构。这一架构以数据库中的大量数据为基础,系统由数据驱动。