数据管理技术的产生和发展 人工管理阶段 文件系统阶段 数据库系统阶段
数据库技术是应数据管理任务的需要而产生的。数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。而数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。
在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。
数据管理三个阶段比较
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | ||
背景 | 应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
硬件背景 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘、磁盘阵列 | |
软件背景 | 无操作系统 | 有文件系统 | 有数据管理系统 | |
处理方式 | 批处理 | 联机实时处理、批处理 | 联机实时处理、分布处理、批处理 | |
特点 | 数据的管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某一应用程序 | 某一应用程序 | 现实世界(部门、企业、组织等) | |
数据的共享程度 | 无共享,冗余度极大 | 共享性差,冗余度大 | 共享性高,冗余度低 | |
数据的独立性 | 不独立,完全依赖程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 | |
数据的结构化 | 无结构 | 记录内有结构,整体无结构 | 整体结构化,用数据模型描述 | |
数据控制能力 | 应用程序控制 | 应用程序控制 | 由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
1. 人工管理阶段
20世纪50年代中期之前,计算机只用于科学计算,没有直接存取的存储设备,也没有操作系统和数据管理软件,处理方式还是批处理。
人们把计算机当成一种计算工具,主要用于科学计算。这一时期就是我们说的数据的人工管理阶段。通常的办法是:用户针对某个特定的求解问题,首先确定求解的算法;然后利用计算机系统所提供的编程语言,直接编写相关的计算机程序;最后将程序和相关的数据通过输入设备送入计算机,计算机处理完之后输出用户所需的结果。不同的用户针对不同的求解问题,均要编写各自的求解程序,整理各自程序的所需的数据,数据的管理完全由用户负责。
因此这个阶段的数据管理具有数据不保存、应用程序管理数据、数据不共享、数据不具有独立性等特点:
1.数据不保存
当时计算机主要用于科学计算,一般不需要将数据长期保存,只是计算某一课题时输入数据,用完就撤走。
2.应用程序管理数据
数据需要由应用程序自己设计、说明(定义)和管理,没有相应的软件系统负责数据的管理工作。应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构(包括存储结构、存取方法、输入方式等),所以程序员负担很重。
3.数据不共享
数据是面向应用程序的,一组数据只能对应一个程序。多个应用程序涉及一些相同的数据时,只能各自定义,无法相互利用、参照,因此程序与程序间有大量冗余数据。
4.数据不具有独立性
数据的逻辑结构或物理结构发生变化后,必须相应地修改应用程序,因此加重了程序员的负担。
2.文件系统阶段
20世纪50-60年代,这个时候已经出现了磁鼓、磁盘等直接存取存储设备,操作系统中出现了专门的数据管理软件,称为文件系统,在处理方式上,不仅有批处理,还出现了联机实时处理。
计算机用于大量处理数据工作,大量的数据存储、检索和维护成为紧迫的需求。为了方便用户使用计算机,提高计算机系统的使用效率,产生了以操作系统为核心的系统软件,以有效的管理计算机资源。文件是操作系统管理的重要资源之一,而操作系统提供了文件系统的管理功能。在文件系统中,数据以文件形式组织与保存。文件是一组具有相同结构的记录的集合。记录是由某些相关数据项组成的。数据组织成文件以后,就可以处理与它的程序相分离而单独存在。数据按其内容、结构和用途的不同,可以组织成若干不同命名的文件。文件一般为某一用户(或用户组)所有,但也可供指定的其他用户共享。文件系统还为用户程序提供一组对文件管理与维护的操作或功能,包括对文件的建立、打开、读/写和关闭等。应用程序可以调用文件系统提供的操作命令来建立和访问文件,应用系统就成了用户程序与文件之间接口
该阶段的文件系统数据管理具有数据可以长期保持、文件系统管理数据、数据共享性差,冗余度大、数据独立性差等特点:
1.数据可以长期保存
由于计算机大量用于数据处理,数据需要长时间保留在外存上反复进行查询、修改、插入和删除等操作。
2.由文件系统管理数据
由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录进行存取”的管理技术,可以对文件进行修改、插入和删除的操作。文件系统实现了记录内的结构性,但整体无结构(文件由记录构成,记录内部有某些结构(记录由若干属性组成),但记录之间没有联系)。程序和数据之间由文件系统提供存取方法进行转换,使应用程序和数据之间有了一定的独立性,程序员可以不必过多地考虑物理细节,将精力集中于算法。而且数据在存储上的改变不一定反映在程序上,大大节省了维护程序的工作量。
3.数据共享性差,冗余度大
在文件系统中,一个(或一组)文件基本上对应一个应用程序,即文件仍然是面向应用的。不同的应用程序具有部分相同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据的冗余度(redundancy)大,浪费存储空间,而且由于重复存储、各自管理,容易造成数据不一致,增加了数据修改和维护的难度。
4.数据独立性差
文件系统中的文件为某一特定应用服务,文件的逻辑结构对该应用程序来说是优化的,所以要想对现有的数据再增加新的应用是很困难的,系统不易扩充。
一旦数据的逻辑结构改变,必须修改相应程序,修改文件结构的定义。因此数据与程序之间仍然缺乏独立性。
可见,文件系统仍然是一个不具有弹性的无结构的数据集合,即文件之间是孤立的,不能反映现实世界事物之间的内在联系。
3.数据库系统阶段
从20世纪60年代后期开始,计算机应用于管理的规模更加庞大,需要计算机管理的数据急剧增长,对数据共享的要求也与日俱增。
随着大容量磁盘系统的使用,计算机联机存取大量数据成为可能;软件价格相对上升,硬件价格相对下降,使独立开发系统和维护软件的成本增加,文件系统的管理方法已无法满足要求。为了解决独立性问题,实现数据统一管理,最大限度地实现数据共享,必须发展数据库技术。于是为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库技术应运而生,出现了统一管理数据的专门软件系统——数据库管理系统。
数据库技术为数据管理提供了一种较完善的高级管理模式,它克服了文件系统方式下分散管理的缺点,对所有数据实行统一、集中管理,使数据的存储独立于它的程序,从而实现数据共享。
相比于人工管理和文件系统,数据库系统具有明显的优点,其主要特点如下:
1.数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。“整体”结构化指在数据库中的数据不再仅仅针对某一应用,而是面向全组织;不仅数据内部是结构化的,而且整体也是结构化的,数据之间是有联系的,而文件系统只是内部有结构,但整体无结构,记录之间没有联系。
在数据库系统中,不仅数据是整体结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录,而在文件系统中,数据的存取单位是记录,粒度不能细到数据项。
2.数据的共享性高,冗余度低,易扩充
数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间,还能避免数据间的不相容性和不一致性。数据的不一致性指同一数据不同拷贝的值不一样。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使数据库系统弹性大、易于扩充。可以选取整体数据的各种子集用于不同的应用程序,当应用需求改变或增加时,只要重新选取不同的子集加上一部分数据,便可满足新需求。
3.数据独立性高
数据独立性包括数据的物理独立性和数据的逻辑独立性。
物理独立性指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。数据在磁盘上的数据库中怎样存储是有DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时,应用程序不用改变。
逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。当数据的逻辑结构发生改变,用户程序也可以不变。
数据独立性是由DBMS的二级映像功能来保证的。
数据与程序的独立,把数据的定义从程序中分离出去,加上存取数据的方法又由DBMS负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
4.数据由DBMS统一管理和控制
数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。
为此DBMS还必须提供以下几方面的数据控制功能:
(1)数据的安全性(Security)保护
数据的安全性是指保护数据,以防止不合法的使用造成数据的泄密和破坏。使每个用户只能按规定对某些数据以某些方式进行使用和处理。
(2)数据的完整性(Integrity)检查
数据的完整性指数据的正确性、有效性、相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。
(3)并发(Concurrency)控制
当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。
(4)数据恢复(Recovery)
计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(也称为完整状态或一致状态)的功能,这就是数据库的恢复功能。
综上所述,数据库是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据库的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。