
2.1.1 数据管理技术的演变
数据管理技术的发展是与信息技术的整体发展水平同步的。软、硬件技术和信息市场的客观需求共同推动着数据库技术的发展。存储器类型的不断推陈出新,以及呈几何级数攀升的CPU速度为数据库技术提供了良好的硬件基础,高级语言的出现带来了过程、控制、函数等概念,大大提高了处理各种数据的能力,从物质技术方面极大地推动了数据库技术的研究和发展。从客观需求来看,应用范围的不断扩大也提供了充足的动力,使得数据库技术从仅用于科学计算扩展到用于行政管理和技术控制,使得数据库技术的发展更加全面。
数据管理是数据库的核心任务,其内容包括对数据的分类、组织、编码、储存、检索和维护。数据管理技术随着计算机硬件和软件的发展而不断地发展。从数据管理技术的发展来看,到目前为止,数据管理技术经历了人工管理、文件系统和数据库系统三个阶段。
20世纪50年代中期以前为人工管理阶段,这是数据管理的初级阶段。当时计算机刚刚诞生不久,主要用于科学计算。从硬件来看,这一阶段没有磁盘等直接存取的存储设备,只有磁带、纸带、卡片等;从软件来看,该阶段没有操作系统和管理数据的软件,只有简单的管理程序。数据处理方式是批处理。
人工管理阶段数据管理的特点如下。
(1)数据不保存。
由于该时期的计算机主要用于科学计算,通常不需要长期保存数据,只是在计算某一课题时将有关数据输入,用完后不保存原始数据,也不保存计算结果。
(2)数据缺乏管理软件。
没有专门对数据进行管理的软件系统,程序员不仅要规定数据的逻辑结构,而且还要在程序中设计物理结构,包括存储结构、存取方法、输入输出方式等。
(3)数据冗余度高。
数据与程序不具有独立性,一组数据对应于一个程序,数据是面向应用的。即使两个程序使用相同的数据,也必须各自定义、各自组织,数据无法共享、无法相互利用和互相参照,从而导致程序和程序之间有大量重复的数据。
在这个时期,数据的管理基本上是手工的、分散的,计算机还没有在数据管理中发挥应有的作用。所以,这种管理方式严重影响了计算机的使用效率。
人工管理阶段的数据和程序之间的关系如图2.1所示。

图2.1 人工管理阶段数据和程序之间的关系
20世纪50年代后期到60年代中期为文件系统阶段。这一阶段计算机技术有了很大的发展,出现了计算机的联机工作方式,计算机开始大量用于管理。在硬件方面,外存储器有了磁盘、磁鼓等可以直接存储的设备。在软件方面,出现了操作系统以及包含于其中的文件管理系统,专门对大量的数据进行管理。不过文件系统也只是简单地存放数据,它们之间并没有有机的联系。数据的存储依赖于应用程序的使用方法,不同的应用程序仍然很难共享同一数据文件。另外,文件系统对数据存储没有一个相应的模型约束,所以数据冗余大。
文件系统阶段数据管理的特点如下。
(1)数据冗余度大。
文件系统中的文件都与某个应用程序相对应,数据仍是面向应用的,当不同的应用程序所需要的数据有部分相同也必须独立建立各自的文件,而不能共享相同的数据。
(2)数据不一致。
由于同一信息在不同的应用范围内采集,有可能造成采集标准不一样,在不同的应用程序中有不同的数据表示。
(3)程序和数据具有物理独立性,但不具有逻辑独立性。
文件系统可以提供存取方法使程序与数据之间进行转换,而不需要程序员进行维护,使得程序和数据具有物理独立性。文件系统中的文件是为某一个特定应用程序服务的,文件的逻辑结构相对于该应用程序是优化的。但这样使得系统难以扩充,一旦数据的逻辑结构改变则对应的应用程序必须修改。应用程序的改变也会影响文件的数据结构的改变,所以程序和数据之间缺乏逻辑独立性。
文件系统阶段数据和程序之间的关系如图2.2所示。

图2.2 文件系统阶段数据和程序之间的关系
数据库系统阶段是从20世纪60年代后期开始的。由于计算机用于管理,从而使数据量急剧增加,其中非数值数据占据的比例较大,而非数值数据比数值数据复杂得多,不仅要知道各项数据的本身内容,而且还需要知道它们之间的关系,这就需要一个高度组织化的数据管理系统。另外,随着计算机软、硬件技术的飞速发展,网络通信的出现使得各种用户共享一个数据集合成为可能,在这种情况下出现了数据库系统。在这一阶段中,数据库中的数据不再是面向某个应用或某个程序,而是面向整个企业(组织)或整个应用的。
数据库系统解决了人工管理和文件系统的弊端,它把数据的定义和描述从应用程序中分离出去,程序对数据的存取全部由数据库管理系统统一管理,从而保证了数据和程序的逻辑独立性。这样数据就可以供各种用户共享且具有最小冗余度,若建立了一个良好的数据库管理系统,就可以为多种程序并发地使用数据库提供及时有效的处理,并保证数据的安全性和完整性。
数据库系统阶段的特点如下。
(1)使用复杂的数据模型来表示结构。
数据库通过数据模型来描述数据本身的特征以及数据之间的关系。数据库的管理不仅要考虑在一个程序中数据的结构,还要考虑在整个工程中应用处理的数据的结构。数据的结构化是数据库的重要特征之一,是其与文件系统的根本区别所在。
(2)具有很高的数据独立性。
用户可以使用简单的逻辑结构来操作数据而不需要考虑物理结构,同时,物理结构的改变也不影响数据的逻辑结构和应用程序。
(3)数据共享度高、冗余度小。
由于数据库是从整体上来描述数据的,数据不再面向某一应用,所以大大减小了数据的冗余度,从而节省了存储空间,减少了存取时间,避免了数据的不一致性。在具体使用时可以抽取整体数据的子集用于不同的应用系统。当应用改变时,只要重新选择子集或者稍加改变,数据即可有更多的用途。
数据库系统阶段数据和程序之间的关系如图2.3所示。

图2.3 数据库系统阶段数据和程序之间的关系