1.2 数据库发展史
数据库的历史可以追溯到50多年前的20世纪60年代,那时的数据管理非常简单。通过大量分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果将在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理存储和处理。1951年雷明顿兰德公司(Remington Rand Inc.)的一种叫做Univac I的计算机推出了一种一秒可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命。1956年IBM生产出第一个磁盘驱动器the Model 305 RAMAC。此驱动器有50个盘片,每个盘片直径为2英尺,可以储存5MB的数据。使用磁盘最大的好处是可以随机地存取数据,而穿孔卡片和磁带只能顺序存取数据。1951年Univac系统使用磁带和穿孔卡片存储数据。
数据库发展阶段大致可分为如下几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。
1.2.1 人工管理阶段
20世纪50年代中期之前,计算机的软、硬件均不完善。硬件存储设备只有磁带、卡片和纸带,软件方面还没有操作系统。当时的计算机主要用于科学计算。这个阶段由于还没有软件系统对数据进行管理,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入/输出方式等。当数据的物理组织或存储设备改变时,用户程序就必须重新编制。由于数据的组织面向应用,不同计算程序之间不能共享数据,使得不同的应用之间存在大量重复数据,很难维护应用程序之间数据的一致性,如图1-1所示。这一阶段的主要特征可归纳如下:
①计算机中没有支持数据管理的软件;
②数据组织面向应用,数据不能共享,数据重复;
③在程序中要规定数据的逻辑结构和物理结构,数据与程序不独立;
④数据处理方式为批处理。
例如,Acrobat生成的数据与Word的数据无法共享,如图1-2所示。
图1-1 人工管理阶段
图1-2 程序间不能共享数据
1.2.2 文件系统阶段
文件系统阶段的主要标志是计算机中有了专门管理数据库的软件——操作系统。20世纪50年代中期到60年代中期,由于计算机大容量存储设备(如硬盘)的出现,推动了软件技术的发展,而操作系统的出现标志着数据管理步入一个新的阶段。在文件系统阶段,数据以文件为单位存储在外存,且由操作系统统一管理。操作系统为用户使用文件提供了友好的界面。文件的逻辑结构与物理结构脱钩,程序与数据分离,使数据与程序有了一定的独立性。用户的程序与数据可分别存放在外存储器上,各应用程序可以共享一组数据,实现了以文件为单位的数据共享,文件系统结构图如图1-3所示。
图1-3 文件系统阶段
在文件系统中,一个txt文档既可以由Word软件打开,也可以由记事本软件打开,两种应用程序共享一个txt文档,如图1-4所示。由于文件系统中数据的组织仍然是面向程序的,存在大量数据冗余,数据的逻辑结构不能方便地修改和扩充,数据逻辑结构的每一点微小改变都会影响到应用程序。
图1-4 文件系统中不同应用程序共享数据
另一方面,文件之间互相独立,不能反映现实世界中事物之间的联系,操作系统不维护文件之间的联系信息。如果文件之间有内容上的联系,也只能由应用程序处理。例如,在Windows操作系统中的一个Word文档,其中的文字数据不能够被另外一个Word文档直接使用,如图1-5所示。如果两个Word文档有相同的数据,则必须各自复制一份,这种重复就是冗余,不方便维护。当图1-5中任何一个学生更换电话号码时,必须同时修改两个文档。如果修改有遗漏,则号码不一致,其中必然有一个号码是错误的。
图1-5 两个文档不能互相引用数据产生冗余
1.2.3 数据库系统阶段
20世纪60年代后,随着计算机在数据管理领域的普遍应用,人们对数据管理技术提出了更高的要求:希望面向企业或部门,以数据为中心组织数据,减少数据的冗余,提供更高的数据共享能力,同时要求程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及数据的物理结构,也不影响应用程序,以降低应用程序研制与维护的费用。数据库技术正是在这样一个应用需求的基础上发展起来的。
数据库技术有如下特点:
①面向企业或部门,以数据为中心组织数据,形成综合性的数据库,为各应用共享。
②采用一定的数据模型。数据模型不仅要描述数据本身的特点,而且要描述数据之间的联系。
③数据冗余小,易修改,易扩充。不同应用程序根据处理要求,从数据库中获取需要的数据,这样就减少了数据的重复存储,也便于增加新的数据结构,便于维护数据的一致性。
④程序和数据有较高的独立性。
⑤具有良好的用户接口,用户可方便地开发和使用数据库。
⑥对数据进行统一管理和控制,提供了数据的安全性、完整性及并发控制。
从文件系统发展到数据库系统,这在信息领域中具有里程碑的意义。在文件系统阶段,人们在信息处理中关注的中心问题是系统功能的设计,因此程序设计占主导地位;在数据库方式下,数据开始占据了中心位置,数据的结构设计成为信息系统首先关心的问题,而应用程序则以既定的结构为基础进行设计。本阶段文件系统结构图如1-6所示。例如,在某大学的网络服务软件中“教师管理系统”、“学生管理系统”、“教务管理系统”通过SQL Server管理系统共享教务数据库中的“学生表”、“课程表”、“教师表”、“成绩表”,如图1-7所示。
图1-6 数据库系统阶段
图1-7 多个应用程序共享数据库