1.1.2 数据库技术的产生与发展

随着计算机技术,特别是数据库技术的产生与发展,数据处理过程也发生了巨大的变化,其核心就是数据管理。数据管理指的是对数据进行分类、组织、编码、存储、检索和维护等。数据处理和数据管理是相互联系的,数据管理技术的优劣将直接影响数据处理的效率。

数据管理技术的发展经历了人工管理、文件系统、数据库三个阶段。

1. 人工管理阶段

在这一阶段(20世纪50年代中期以前),计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带,软件只有汇编语言,尚无数据管理方面的软件。数据处理的方式基本上是批处理。这个时期数据管理的特点如下。

① 数据不保存。因为当时计算机主要用于科学计算,对于数据保存的需求尚不迫切。需要时把数据输入内存,运算后将结果输出,数据不保存在计算机中。

② 没有专用的软件对数据进行管理。在应用程序中,不仅要管理数据的逻辑结构,还要设计其物理结构、存取方法、输入/输出方法等。当存储改变时,应用程序中存取数据的子程序就需随之改变。

③ 数据不具有独立性。数据的独立性是指逻辑独立性和物理独立性。当数据的类型、格式或输入/输出方式等逻辑结构或物理结构发生变化时,必须对应用程序做出相应的修改。

④ 数据是面向程序的。一组数据只对应一个应用程序。即使两个应用程序都涉及某些相同数据,也必须各自定义,无法相互利用。因此,在程序之间有大量的冗余数据。

在人工管理阶段,上述数据与程序关系的特点如图1.1所示。

47810-00-012-0.jpg

图1.1 人工管理阶段数据与程序的关系

2. 文件系统阶段

在这一阶段(20世纪50年代后期到60年代中期),计算机不仅用于科学计算,还用于信息管理。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备,软件领域出现了高级语言和操作系统。操作系统中的文件系统是专门的数据管理软件。这时可以把相关的数据组成一个文件存放在计算机中,在需要时只要提供文件名,计算机就能从文件系统中找出所要的文件,把文件中存储的数据提供给用户进行处理。

(1)特点

① 数据以文件形式可长期保存在外部存储器的磁盘上。应用程序可对文件进行大量的检索、修改、插入和删除等操作。

② 文件组织已多样化。其有索引文件、顺序存取文件和直接存取文件等。因而,对文件中的记录可顺序访问,也可随机访问,便于存储和查找数据。

③ 数据与程序间有一定的独立性。数据由专门的软件即文件系统进行管理,程序和数据间由软件提供的存取方法进行转换,数据存储发生变化不一定影响程序的运行。

④ 对数据的操作以记录为单位。这是由于文件中只存储数据,不存储文件记录的结构描述信息。文件的建立、存取、查询、插入、删除、修改等所有操作,都要用程序来实现。

(2)存在的问题

在文件系统阶段,虽然给用户提供了一定的方便,但仍存在一些问题,主要表现如下。

① 数据冗余度大。由于各数据文件之间缺乏有机的联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中大量地被重复存储,数据不能共享。

② 数据独立性低。数据和程序相互依赖,一旦改变数据的逻辑结构,必须修改相应的应用程序。而应用程序发生变化,如改用另一种程序设计语言来编写程序,也需修改数据结构。

③ 数据一致性差。由于相同数据的重复存储、各自管理,在进行更新操作时,容易造成数据的不一致。

这样,文件系统仍然是一个不具有弹性的无结构的数据集合。文件之间是孤立的,不能反映现实世界中事物之间的内在联系。在文件系统阶段,数据与程序的关系如图1.2所示。

47810-00-013-1.jpg

图1.2 文件系统阶段数据与程序的关系

3. 数据库阶段

数据管理技术进入数据库阶段是在20世纪60年代末。由于计算机应用于管理的规模更加庞大,数据量急剧增加,硬件方面出现了大容量磁盘,使计算机联机存取海量数据成为可能;硬件价格下降,而软件价格上升,使开发和维护系统软件的成本增加。文件系统的数据管理方法已无法适应开发应用系统的需要。为解决多用户、多个应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统,这使利用数据库技术管理数据变成了现实。

数据库有以下几方面的特点。

(1)数据共享性高、冗余度低。这是数据库系统阶段的最大改进,数据不再面向某个应用程序,而是面向整个系统,当前所有用户可同时访问数据库中的数据。这样便减少了不必要的数据冗余,节约了存储空间,同时也避免了数据之间的不相容性与不一致性。

(2)数据结构化。即按照某种数据模型,将应用的各种数据组织到一个结构化的数据库中。在数据库中,数据的结构化不仅要考虑某个应用的数据结构,还要考虑整个系统的数据结构,并且还要能够表示出数据之间的有机关联。

(3)数据独立性高。数据的独立性是指逻辑独立性和物理独立性。

数据的逻辑独立性是指当数据的总体逻辑结构改变时,数据的局部逻辑结构不变。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与程序间的逻辑独立性。

数据的物理独立性是指当数据的存储结构改变时,数据的逻辑结构不变,从而应用程序也不必改变。

(4)有统一的数据控制功能。数据库为多个用户和应用程序所共享,对数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。为确保数据库数据的正确有效和数据库系统的有效运行,数据库管理系统提供下述四方面的数据控制功能。

① 数据的安全性控制。防止不合法使用数据造成数据的泄露和破坏,保证数据的安全和机密。例如,系统提供口令检查或其他手段来验证用户身份,防止非法用户使用系统;也可以对数据的存取权限进行限制,只有通过检查后,才能执行相应的操作。

② 数据的完整性控制。系统通过设置一些完整性规则以确保数据的正确性、有效性和相容性。正确性是指数据的合法性,如年龄属于数值型数据,只能包含阿拉伯数字0,1,…,9,不能包含字母或特殊符号。有效性是指数据是否在其定义的有效范围内,如月份只能用1~12之间的正整数表示。相容性是指表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个性别。

③ 并发控制。防止多用户同时存取或修改数据库时,因相互干扰而提供给用户不正确的数据,并使数据库受到破坏。

④ 数据恢复。当数据库被破坏或数据不可靠时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。

在数据库系统阶段,程序与数据之间的关系可用图1.3表示。

47810-00-014-0.jpg

图1.3 数据库系统阶段程序与数据之间的关系