4.2数据处理
所谓数据处理,实际上就是利用计算机对各种类型的数据进行加工处理。它包括对数据的采集、整理、储存、分类、排序、检索、维护、加工、统计和传输等一系列操作过程。数据处理的目的是从人们收集的大量原始数据中,获得人们所需要的资料并提取有用的数据成分,作为行为和决策的依据
随着计算机软件、硬件技术的发展,数据处理量的规模日益扩大,数据处理的应用需求越来越广泛,数据管理技术的发展也不断变迁,经历了从人工管理、文件系统、数据库系统3个阶段。当今世界上大多数的数据处理都依托于数据库管理系统。
1.人工管理阶段
20世纪50年代中期以前,计算机主要用于科学计算。在这一阶段,计算机除硬件外,没有管理数据的软件,数据处理方式是批处理。数据的组织和管理完全靠程序员手工完成,此阶段数据的管理效率很低,其特点如下。
(1)数据不保存
此阶段计算机主要用于科学计算,并不对数据进行其他操作,一般不需要将数据长期保存,只是在计算某一课题时将数据批量输入,数据处理完后不保存原始程序和数据。计算机断电之后计算结果也会随之消失。
(2)应用程序管理数据
数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。程序员不仅要规定数据的逻辑结构,而且要设计数据的物理结构,包括存储结构、存取方法和输入输出方式等,使得程序员负担很重。
(3)数据不共享
一组数据只能对应一个程序,数据是面向应用的。各个应用程序的数据各自组织,无法互相利用和互相参照,因此程序与程序之间有大量的冗余数据。
(4)数据不具有独立性
数据的逻辑结构和物理结构都不具有独立性。当数据的逻辑结构或物理结构
发生变化后,必须对应用程序做相应的修改,从而给程序员设计和维护应用程序带来繁重的负担。在人工管理阶段,程序与数据之间的一一对应关系如图所示。
2.文件系统阶段
20世纪50年代后期到60年代中期,硬件方面已有了磁盘、磁鼓等存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统。这时的计算机不仅用于科学计算,也大量用于数据处理。
此阶段数据管理具有如下特点。
(1)数据可以长期保存
由于计算机大量用于数据处理,数据需要长期保留以便在外存上反复进行查询、修改、插入和删除等操作。
(2)文件系统管理数据
数据库是软件吗由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录进行存取”的管理技术,可以对文件中的数据进行修改、插入和删除操作。文件系统实现了记录内的结构化,但就文件整体而言是无结构的。程序和数据之间由文件系统提供的存取方法进行转换,使应用程序与数据之间有了一定的独立性。程序员可以不必过多地考虑物理细节,将精力集中于算法。而且数据在存储上的改变不一定反映在程序上,大大节省了维护程序的工作量。文件系统阶段程序与数据之间的关系如图所示。
尽管文件系统有上述优点,但它仍存在一些缺点,主要表现在以下几个方面:
(1)数据的共享性差,冗余度高
在文件系统中,数据的建立、存取都仍依赖于应用程序,基本是一个(或一组)数据文件对应于一个应用程序,即数据仍然是面向应用的。当不同的应用程序具有部分相同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据的冗余度大,浪费存储空间。同时,由于相同数据的重复存储和各自管理,容易造成数据的不一致性,给数据的修改和维护带来困难。
(2)数据的独立性不足
文件系统中的数据虽然有了一定的独立性,但是由于数据文件只存储数据,由应用程序来确定数据的逻辑结构,设计数据的物理结构,一旦数据的逻辑结构或物理结构需要改变,必须修改应用程序;或者由于语言环境的改变需要修改应用程序时,也将引起文件数据结构的改变。因此数据与应用程序之间的逻辑独立性不强。另外,要想对现有的数据再增加一些新的应用会很困难,系统不容易扩充。
(3)并发访问容易产生异常
文件系统缺少对并发操作进行控制的机制,所以系统虽然允许多个用户同时访问数据,但是由于并发的更新操作相互影响,容易导致数据的不一致。
(4)数据的安全控制难以实现
数据不是集中管理。在数据的结构、编码、表示格式、命名以及输出格式等方面不容
易做到规范化、标准化,所以其安全性、完整性得不到可靠保证,而且文件系统难以实现对不同用户的不同访问权限的安全性约束。
3.数据库系统阶段
从20世纪60年代末期开始,计算机管理的数据对象规模越来越大,应用范围越来越广,数据量急剧增加,数据处理的速度和共享性的要求也越来越高。与此同时,磁盘技术也取得了重要发展,为数据库技术的发展提供了物质条件。随之,人们开发了一种新的、先进的数据管理方法:将数据存储在数据库中,由数据库管理软件对其进行统一管理,应用程序通过数据库管理软件来访问数据。数据库系统阶段应用程序与数据之间的对应关系如图所示。
较之人工管理和文件管理,数据库系统具有明显的优点,主要有以下几方面。
(1)数据结构化
数据结构化是数据库与文件系统的本质区别。在数据库系统中,数据不再针对某一应用,而是面向全组织,具有整体的结构化。不仅数据是结构化,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录。而在文件系统中,数据的最小存取单位是记录,粒度不能细到
数据项。
(2)数据共享性高、冗余度低、易扩充
数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间,还能够避免数据之间的不相容性与不一致性。
所谓数据的不一致性是指同一数据不同拷贝的值不一样。采用人工管理或文件系统管理时,由于数据被重复存储,当不同的应用使用和修改不同的拷贝时就很容易造成数据的不一致。在数据库中数据共享减少了由于数据冗余造成的不一致现象。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用。这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。
3. 数据独立性高
数据独立性是数据库领域中的一个常用术语,包括数据的物理独立性和数据的逻辑独立性。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变了,用户程序可以不变。
数据与程序的独立把数据的定义从程序中分离出去,加上数据的存取又由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
4. 数据由DBMS统一管理和控制
数据库的共享是并发的(Concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。