Visual FoxPro程序设计
上QQ阅读APP看书,第一时间看更新

1.1 数据库系统简介

1.1.1 数据、信息、数据处理、数据管理

1.数据

数据是指存储在某种媒体上能够被识别的物理符号序列,用于描述信息。数据包括数值型数据和非数值型数据。数值型数据以数字表示信息。非数值型数据以符号及其组合来表示信息,如文本、图形、图像、声音、视频等。

2.信息

信息是客观世界事物的存在方式与运动状态的综合,用于反映客观世界的状态。数据和信息既相互联系又相互区别。信息是数据的内涵,是对数据的语义解释;而数据则是信息的具体表现形式,是信息的符号表示或载体。

3.数据处理

数据处理是指将数据转换成信息的过程,其基本操作包括数据的收集、整理、存储、加工、分类、维护、排序、检索和传输等。数据处理的目的是从大量的原始数据中抽取和推导出有价值的信息,以作为行为和决策的依据。

4.数据管理

数据管理是指对数据的分类、组织、编码、存储、查询和维护等操作,是数据处理的中心环节。数据管理技术的优劣直接影响数据处理的效率。人们研制出通用高效又方便使用的管理软件,高效地管理数据。数据库技术正是按此目标研究、发展并完善起来的。

1.1.2 数据管理发展的3个阶段

在应用需求的不断推动下,随着计算机硬件、软件技术的发展,数据管理技术经历了人工管理、文件系统和数据库系统3个阶段。

1.人工管理阶段

20世纪50年代中期以前是人工管理阶段。此阶段计算机主要用于科学计算。在硬件方面,外部存储器只有磁带、卡片和纸带等,还没有磁盘等直接存取的存储设备。在软件方面,还没有操作系统和数据管理软件。人工管理阶段的应用程序和数据之间的关系如图1-1所示。

人工管理阶段的数据管理具有如下特点:

(1)数据不能长期保存。用户把应用程序和数据一起输入内存,应用程序对数据进行处理、输出结果。任务完成后,数据随着应用程序一起从内存被释放。

(2)没有专用的数据管理软件。数据由应用程序自己管理,每个应用程序不仅要规定数据的逻辑结构,而且要设计物理结构,包括数据的存储结构、存取方法和输入方式等,因此,程序员的负担很重。

(3)数据不共享。数据是面向程序的,一组数据只对应一个程序,数据不能由多个应用程序共享。多个应用程序即使涉及某些相同的数据,也必须各自定义,因此,程序之间有大量的冗余数据。

(4)数据与程序不具有独立性。程序依赖于数据,如果数据的类型、格式或输入/输出方式等逻辑结构或物理结构发生变化,必须修改应用程序。

图1-1 人工管理阶段应用程序和数据之间的关系

2.文件系统阶段

20世纪50年代后期至60年代中期,为文件系统阶段。在该阶段,计算机应用范围逐步扩大,不仅用于科学计算,还大量用于信息管理。在硬件方面,已有了磁盘、磁鼓等直接存取的存储设备;在软件方面,出现了高级语言和操作系统,操作系统中有了专门的数据管理软件,一般称为文件系统。在文件系统阶段,应用程序和数据之间的关系如图1-2所示。

图1-2 文件系统阶段应用程序和数据之间的关系

文件系统阶段的数据管理具有如下特点:

(1)数据以文件的形式长期保存。数据以文件的组织方式,保存在计算机的存储设备上,可以被多次使用。应用程序可以对文件进行查询、修改和增删等操作。

(2)由文件系统管理数据。文件系统进行数据的存取,实现“按文件名访问,按记录存取”。应用程序按照文件名存取文件,不关心数据的物理存储(存储位置、存储结构等)细节,从而提高了应用程序的开发效率。

(3)程序与数据之间有一定独立性。应用程序和数据之间具有“设备独立性”,即当改变存储设备时,不必改变应用程序。程序员也不必过多考虑数据存储的物理细节,而将精力集中于算法设计上,从而大大减少了维护程序的工作量。

与人工管理阶段相比,文件系统阶段对数据的管理有了很大的进步,但仍存在一定缺陷:

(1)数据共享性差,冗余度大,易造成数据不一致。各数据文件之间没有有机联系,一个文件基本对应一个应用程序,文件仍然是面向应用的。当不同应用程序所使用的数据具有共同部分时,也必须分别建立自己的数据文件,数据不能共享。同时,由于相同数据的重复存储、各自管理,不但浪费磁盘空间,同时也容易造成数据的不一致。

(2)数据独立性差。在文件系统阶段,尽管程序与数据之间有一定的独立性,但是这种独立性主要是指设备独立性,还未能彻底体现用户观点下的数据逻辑结构独立于数据外部存储器的物理结构。一旦改变数据的逻辑结构,仍然必须修改相应的应用程序。而当应用程序发生变化时,也必须相应地修改文件的数据结构。

3.数据库系统阶段

从20世纪60年代后期开始,为数据库系统阶段。此阶段,计算机广泛用于数据管理,数据量急剧增加,文件系统无法适应开发应用系统的需要。与此同时,硬件方面出现了大容量、快速存取的磁盘,计算机存取大量数据成为可能。

在应用程序和数据库之间,通过数据库管理系统(DataBase Management System,DBMS)来管理数据,数据仍然以文件的形式存储。与文件系统不同,数据库管理系统把所有应用程序使用的数据汇集在一起,并以记录为单位存储起来,便于应用程序查询和使用。在数据库系统阶段,应用程序和数据之间的关系如图1-3所示。

图1-3 数据库系统阶段应用程序和数据之间的关系

与人工管理和文件系统相比,数据库系统阶段的数据管理具有如下特点:

(1)数据结构化。数据结构化是数据库与文件系统的根本区别。文件系统中的文件之间不存在联系,从总体上看,其数据是没有结构的。在数据库系统中,将各种应用的数据按一定的结构形式(即数据模型)组织到一个结构化的数据库中,数据库中的数据不再仅仅针对某个应用,而是面向整个应用系统,不仅数据内部是结构化的,整体也是结构化的。数据模型不仅描述了数据本身,也描述了数据间的联系。

(2)数据共享性高,冗余度低。数据库系统从整体角度看待和描述数据,所有用户的数据都包含在数据库中。不同用户、不同应用可以同时存取数据库中的数据,每个用户或应用只使用数据库中的一部分数据,同一数据可供多个用户或应用共享,从而减少了不必要的数据冗余,节省了存储空间,避免了数据之间的不相容性和不一致性。

(3)数据独立性高。数据独立性把数据的定义从程序中分离出去,数据的存取由数据库管理系统负责,从而简化了应用程序的编制,大大降低了应用程序的维护工作负担。

(4)有统一的数据控制功能。数据库由数据库管理系统来统一管理,并提供4个方面的数据控制功能:并发性控制、完整性控制、安全性控制、可恢复性控制。并发性控制允许多个用户同时操作数据库中的数据;完整性控制保证数据的正确性;安全性控制可以防止非法用户存取数据;可恢复性控制是系统出现故障时,可将数据恢复到最近某个时刻的正确状态。

1.1.3 新型数据库系统

自20世纪80年代中期以来,数据库技术与其他领域的技术相结合,出现了数据库的许多新分支。例如,与网络技术相结合出现了网络数据库,与分布式处理技术相结合出现了分布式数据库,与面向对象技术相结合出现了面向对象数据库,与人工智能技术相结合出现了知识库、主动数据库,与并行处理技术相结合出现了并行数据库,与多媒体技术相结合出现了多媒体数据库。此外,针对不同应用领域出现了工程数据库、实时数据库、空间数据库、地理数据库、统计数据库、时态数据库等多种数据库及相关技术。