在计算机诞生初期,计算机主要用于科学计算,那时的数据管理是以人工的方式进行的,后来发展到文件系统,再后来才是数据库系统。也就是说,数据管理技术的发展经历了人工管理阶段、文件系统阶段和数据库系统阶段。
1.人工管理阶段
20世纪50年代初期,即计算机诞生初期,计算机主要用于科学计算。这个时期的计算机,在硬件方面没有磁盘这样的直接存储设备,在软件方面没有操作系统,更没有数据管理软件,数据处理方式以批处理为主。所以为了完成科学计算和数据处理,数据管理必须手动完成,这个阶段称为人工管理阶段。人工管理阶段的特点有以下几个。
(1)数据不保存在计算机内。计算机主要用于科学计算,不对数据进行其他处理,也没有直接存储设备,数据与应用程序一起运行,运行完成后所占用的空间和应用程序所占用的空间一起被释放。
(2)数据不共享。数据是面向应用程序的,一组数据只对应一个应用程序,当多个应用程序涉及相同数据时,必须各自定义,因此数据存在大量的冗余。
(3)数据不具有独立性。数据完全依赖于应用程序,一旦数据发生变化,必须对应用程序做相应修改,这就说明数据不具有独立性。该特点加重了程序员的负担。
(4)应用程序管理数据。数据没有软件专门管理,由应用程序设计、定义和管理,应用程序不仅要规定数据的逻辑结构,还要设计物理结构。
在人工管理阶段,应用程序与数据之间有着一一对应关系,如图1.2所示。
图1.2 人工管理阶段应用程序与数据之间的关系
2 . 文件系统阶段
20世纪50年代后期到20世纪60年代后期,计算机在硬件方面已经有了磁盘、磁鼓等直接存储设备,在软件方面有了操作系统,并且已经有了专门的数据管理软件,即文件系统,数据处理方式不仅有批处理,还有联机实时处理。这个阶段称为文件系统阶段,文件系统阶段的特点有以下几个。
(1)数据可以长期保存。计算机大量用于数据处理,数据可以长期保存在计算机中,可以对其进行插入、删除、修改和查询等操作。
(2)数据共享性差。在文件系统中,一个文件基本上对应一个应用程序,不同应用程序在涉及相同数据时,也必须建立各自的文件,而不能共享相同数据,因此数据的冗余度很大。同时冗余度大也容易造成数据不一致,给数据的修改和维护带来困难。
(3)数据独立性差。数据仍然依赖于应用程序,缺乏独立性,不能反映现实世界事物之间的内在联系。
(4)文件系统管理数据。有专门的软件即文件系统进行数据管理。文件系统把数据组织成相互独立的数据文件。
在文件系统阶段,应用程序与数据之间的关系如图1.3所示。
3 . 数据库系统阶段
20世纪60年代后期以来,随着数据量急剧增长,数据管理规模一再扩大,数据应用范围也越来越广。这时计算机在硬件方面已经有大容量磁盘、磁盘阵列,硬件价格下降,软件价格上升。在数据处理方式上,不仅有批处理,还有联机实时处理和分布式处理等。在这种背景下,文件系统已经不能满足需求,于是为了满足多用户、多应用共享数据的需求,数据库技术应运而生,出现了专门管理数据的软件,即数据库管理系统(DataBase Management System,DBMS)。
图1.3 文件系统阶段应用程序与数据之间的关系
在数据库系统阶段,应用程序与数据(存在数据库中)之间的关系如图1.4所示。
图1.4 数据库系统阶段应用程序与数据之间的关系
20世纪70年代以来,数据库技术得到了迅速发展,弥补了文件系统的许多缺陷,能够更加有效地管理数据。概括起来,数据库系统阶段的特点有以下几个。
(1)数据可以长期保存在数据库管理系统内。采用数据模型描述复杂的数据,数据模型不仅要描述数据的本身特征,还要描述数据间的联系。
(2)数据具有较高的共享性。多个应用程序需要使用相同数据时,数据不用再重新定义,因为数据与数据之间有联系,所以数据具有较高的共享性,这同时大大减少了数据冗余,节约了存储空间。数据共享还能有效避免数据的不相容性和不一致性。
(3)数据具有较高的独立性。数据库结构包括物理结构、整体逻辑结构和局部逻辑结构3部分。数据独立性包括物理数据独立性和逻辑数据独立性两方面。物理数据独立性指应用程序与数据的物理结构相互独立,物理结构改变基本不影响数据的整体逻辑结构、用户逻辑结构和应用程序。逻辑数据独立性指数据的整体逻辑结构发生变化基本不影响用户逻辑结构和应用程序。
(4)采用数据库管理系统管理数据。数据库管理系统对数据的操作更加灵活、安全。