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