1.2 数据库管理技术的发展

随着计算机技术的发展及应用,数据管理技术共经历了人工管理、文件系统和数据库系统三个阶段。

(1)人工管理阶段。

20世纪50年代中期以前,计算机主要用于科学计算,其所涉及的数据处理工作基本上都是依靠手工方式来进行的。当时,在硬件方面,直接存取数据的存储设备还未出现,数据只能存放在纸带或者卡片上;在软件方面,数据处理只能通过汇编语言来实现,没有操作系统,更没有专门管理数据的软件,数据处理是通过批处理的方式来实现的,并且在程序运行结束后数据一般不会保存。

人工管理阶段具有如下特点:

①数据不保存。

由于当时计算机主要用于科学计算,侧重于提高计算的速度和精度,相对而言数据量较少,一般不需要将数据长期保存。此外,限于内存和外存的空间和速度,其数据也不便于长期保存。

②人工管理数据。

由于当时没有相应的软件系统负责数据的管理工作,应用程序中涉及的数据需要由程序员自己管理。

③数据不共享。

数据共享是指多个用户、多种语言、多个应用程序可以使用一些共同的数据集合。在人工管理阶段,数据是面向应用程序的。如图1.4所示,一组数据只能对应一个程序。当多个应用程序涉及某些相同的数据时,数据必须各自定义,无法互相利用、互相参照,因此程序与程序之间存在着大量的冗余数据。

图1.4 人工管理阶段应用程序与数据之间的对应关系

④数据与程序不具有独立性。

数据依赖于程序,程序员不仅要规定数据的逻辑结构,还要设计数据在存储器中的存储结构、存储方法等。如果数据在存储结构和方法上改变了,程序员就必须修改程序。

在人工管理阶段,由于只有程序的概念,没有文件的概念,数据是在程序中定义的,因此一组数据只能对应一个程序。

(2)文件系统阶段。

20世纪50年代后期到20世纪60年代中期,计算机软、硬件技术发展到了一定阶段。其中,计算机在硬件方面配备了磁盘、磁鼓等直接存取存储设备;在软件方面,特别是在操作系统中配备了专门的数据管理软件,即文件系统,如图1.5所示。

图1.5 文件系统阶段应用程序与数据之间的对应关系

这一阶段实现了数据的长期保存,数据以文件的形式保存在外部存储器上,供程序查询、修改、删除等操作。程序与数据也有了一定的独立性,程序员可以更加专注于算法,减少了维护程序的工作量。但这一阶段,数据共享率也很低,文件是面向应用程序的,必须建立各自的文件,即系统中一个文件只能为一个应用程序服务,即使有重复的数据也不能共享,数据冗余度高。

文件系统阶段具有如下特点:

①数据可以长期保存。

由于计算机常用于数据处理,数据需要长期保存以便反复使用。把一批数据以一个文件的形式保存在磁盘等存储设备上,为数据的长期保存和反复使用(查询、修改、插入和删除等)提供了保障。

②文件的结构化。

数据文件的存取基本上以记录为单位组织,而记录则是由一些字段按特定的结构组成的,每个记录的长度是相等的。因此,数据文件是记录的集合,文件系统实现了记录内部的结构性,但数据文件之间在整体上是无结构的。

③文件系统管理数据。

数据文件和程序之间有一定的独立性,文件系统可自动完成数据文件和程序之间的存取操作。

文件系统的上述特点比人工管理阶段有了很大的改进,但仍存在如下缺点:

①数据冗余度大。

数据冗余是指同一组数据在多个文件中同时出现所引起的重复现象。

在文件系统中,一个文件基本上对应一个应用程序。当不同的应用程序具有部分相同的数据时,程序员也必须建立各自的数据文件,而不能共享相同的数据。例如,人事文件包含了企业所有雇员的信息,而销售文件又包含了销售人员的雇员信息。

②数据独立性较差。

由于文件的逻辑结构是在应用程序中定义的,文件系统中的文件是为某一特定应用程序服务的。因此,一旦数据的逻辑结构发生改变,程序员必须修改应用程序中关于文件结构的定义。反过来,应用程序的改变,例如应用程序改用不同的高级语言编写等,也将引起数据文件结构的改变。因此,数据文件与程序之间的独立性较差。

③数据联系弱。

数据联系是指不同文件中的数据之间的联系。

在文件系统阶段,不同文件中的数据相互独立且缺乏相互关联,因此数据联系弱。

(3)数据库阶段。

20世纪60年代以后,计算机的硬件、软件都有很大发展,计算机性能也越来越好,需要计算机管理的数据量越来越大,多用户、多应用共享数据的需求也越来越强。为了满足多用户、多应用程序共享数据的需求,让数据可以为尽可能多的应用程序服务,数据管理技术产生了。这个阶段实现了数据的结构化,体现了数据之间的逻辑联系。数据由数据库管理系统统一管理。数据冗余少,共享性高。数据的独立性强,应用程序与数据库相互独立。数据的完整性和安全性也有了很大的提高。

数据库系统阶段应用程序与数据之间的对应关系如图1.6所示。

图1.6 数据库系统阶段应用程序与数据之间的对应关系

从文件系统发展到数据库系统标志着数据管理技术的飞跃。概括起来,与人工管理、文件系统两种数据管理方法相比较,数据库系统具有如下特点:

①数据的结构化。

数据库系统采用数据模型表示结构化数据。

数据结构化是数据库系统与文件系统的根本区别,数据库系统中的数据是整体结构化的,以一定的逻辑结构存放,这是由数据库系统的数据模型决定的。而文件系统阶段只有数据文件内部的结构化,没有体现出全体数据文件之间整体上的结构化。

②数据独立性高。

数据和程序彼此独立。数据库系统把数据从程序中分离出来,当数据发生变化时,不需要修改应用程序。

例如:在数据库中有一个存储学生成绩的记录(学号,课程名,成绩),若将其修改为(学号,课程名,成绩,使用教材),则原先关于成绩记录(学号,课程名,成绩)的有关应用程序不需要做任何修改仍可使用。

③数据共享性高、数据冗余度小。

从数据库系统角度来看,数据不再面向某个应用程序,而是面向整个系统,因而数据可以被多个用户、多个应用共享,数据冗余度大大减小,这样不仅节省了存储空间,减少了存取时间,而且还可以避免数据的不一致性和不相容性。例如,在学生学籍管理应用、学校图书管理应用、校园卡管理应用中,每一个应用都拥有一个包含学生信息的文件。而对于数据库存储,这些独立而有冗余的数据文件被集成为单一的逻辑结构,并且每一个数据项的值可以理想地只存储一次,从而节约存储空间,避免数据的重复存储。

④数据库管理系统的集中管理。

数据库管理系统具有对数据的统一管理和控制功能,主要包括数据的安全性、完整性、并发控制与故障恢复等,即数据库保护。

数据的安全性。数据的安全性(Security)是指保护数据,以防止不合法的使用而造成数据泄密和破坏,使每个用户只能按规定对某些数据以某种方式进行使用和处理,即保证只有赋予权限的用户才能访问数据库中的数据,防止对数据的非法使用。

数据的完整性。数据的完整性(Integrity)是对数据的正确性、有效性和相容性的要求,即控制数据在一定的范围内有效或要求数据之间满足一定的关系,保证输入到数据库中的数据满足相应的约束条件,以确保数据有效、正确。例如,确保“性别”的取值只能是“男”或“女”。

并发控制。并发控制(Concurrency)是指当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误结果,并使数据库的完整性遭到破坏,因而对多用户的并发操作加以控制和协调。例如,网上购买火车票的应用系统必须能确保不会由于多用户同时购买相同的车票而造成冲突、错误,即必须有并发控制的能力。

故障恢复。计算机产生的硬件故障、操作员的失误以及人为的破坏都会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失,DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能,这就是数据库的故障恢复(Recovery)。

从数据库管理技术的发展来看,数据库系统阶段是对前两个阶段的一种完善和补充,其在性能上有了很大的提高。表1.1为数据管理三个阶段的比较。

表1.1 数据管理三个阶段的比较