
1.1.3 数据库系统
下面介绍数据库系统的相关知识。
1.数据库的概念
在日常工作中,需要处理的数据量往往很大,为便于计算机对其进行有效的处理,可以将采集的数据存放在建立于磁盘、光盘等外存媒介的“仓库”中,这个“仓库”就是数据库(DataBase,DB)。数据集中存放在数据库中,便于对其进行处理,提炼出对决策有用的数据和信息。这就如同一个学校采购大量的图书存放在图书馆(书库),供学生借阅。因此,数据库就是在计算机外部存储器中存储的数据仓库。
与书库需要管理员和一套管理制度一样,数据库的管理也需要一个管理系统,这个管理系统就称为数据库管理系统(DataBase Management System,DBMS)。以数据库为核心,并对其进行管理的计算机系统称为数据库系统(DataBase System,DBS)。那么,什么是数据库呢?数据库是一个复杂的系统,给它下一个确切的定义是困难的,目前还没有一个公认的、统一的定义。
但对一个特定数据库来说,它是集中、统一地保存、管理着某一单位或某一领域内所有有用信息的系统,这个系统根据数据间的自然联系结构而成,数据较少冗余,且具有较高的数据独立性,能为多种应用服务。
2.数据库的发展
数据管理的发展经历了人工管理、文件系统到数据库系统三个阶段。
在人工管理阶段,由于没有软件系统对数据进行管理和计算机硬件的限制,数据的管理是靠人工进行的,而计算机只能对数据进行计算。当时对数据处理的过程是:先将程序和数据输入计算机,计算机运行结束后,将结果再输出,由人工保存,计算机并不存储数据。
20世纪50年代后期到60年代中期,由于计算机外存得到发展,软件又有了操作系统,对数据管理产生了文件系统。在文件系统阶段,是按照数据文件的形式来存放数据的,在一个文件中包含若干“记录”,一个记录又包含若干“数据项”,用户通过对文件的访问实现对记录的存取。这种数据管理方式称为文件管理系统。文件管理系统的一个致命的不足是:数据的管理没有实现结构化组织,数据与数据之间没有联系,文件与文件之间没有有机的联系,数据不能脱离建立其数据文件的程序,从而也使文件管理系统中的数据独立性和一致性差,冗余度大,限制了大量数据的共享和有效的应用。
20世纪60年代末期,随着计算机技术的发展,为了克服文件管理系统的缺点,人们对文件系统进行了扩充,研制了一种结构化的数据组织和处理方式,即数据库系统。数据库系统建立了数据与数据之间的有机联系,实现了统一、集中、独立地管理数据,使数据的存取独立于使用数据的程序,实现了数据的共享。从20世纪90年代至今,数据库技术得到飞速的发展。
3.数据库的特征
作为信息管理中的核心技术,数据库技术在计算机应用中得到迅速的发展,目前已经成为信息管理的最新、最重要的技术。数据库有以下明显特点:
(1)数据结构化。数据库中的数据不再像文件系统中的数据那样从属特定的应用,而是按照某种数据模型组织成为一个结构化的数据整体。它不仅描述了数据本身的特性,而且描述了数据与数据之间的种种联系,这使数据库具备了复杂的内部组织结构。
(2)实现数据共享。这是数据库技术先进性的重要体现。由于数据库中的数据实现了按某种数据模型组织为一个结构化的数据,实现了多个应用程序、多种语言及多个用户能够共享一个库中的数据,甚至在一个单位或更大的范围内共享,大大提高了数据的利用率,提高了工作效率。
(3)减少数据冗余度。在数据库技术之前,许多应用系统都需要建立各自的数据文件,即使相同的数据也都需要在各自的系统中保留,造成大量的数据重复存储,这一现象称为数据的冗余。由于数据库实现了数据共享,减少了存储数据的重复,节省了存储空间,减少了数据冗余。
(4)数据独立性。数据库技术中的数据与操作这些数据的应用程序相互独立,互不依赖,不因一方的改变而改变另一方,这大大简化了应用程序设计与维护的工作量,同时数据也不会随应用程序的结束而消失,可长期保留在计算机系统中。
(5)统一的数据安全保护。数据共享在提供了多个用户共享数据资源的同时,还需解决数据的安全性、一致性和并发性问题。这里安全性是指只有合法授权的用户才能对数据进行操作;一致性是指当多个用户对同一数据操作时不能互相干扰,从而出现操作结果不确定或不一致的情况;在保证一致性的前提下,数据库系统提供并发功能,使多用户同时对数据库的操作有一致的正确结果。
4.数据库的角色
数据库的系统结构及角色如图1-1所示。

图1-1 数据库系统结构及角色
由内至外,一个数据库系统角色及其负责功能如下:
(1)数据库软件开发商负责数据库软件开发工作,其编程基础是操作系统提供的各种功能,开发的软件称为数据库管理系统。数据库管理系统功能是完成对数据定义、描述、操作、维护等功能(例如,SQL语句功能的实现),接受并完成用户程序及终端命令对数据库的不同请求,并负责保护数据免受各种干扰和破坏。数据库软件的核心是数据库管理系统。
(2)数据库管理员(DataBase Administrator,DBA)负责应用程序的开发工作。应用程序通常是图形化界面的程序,它封装了数据库操作知识,使得没有数据库知识的普通用户也能够使用数据库操作、存储数据。数据库管理员必须理解数据库管理系统提供的各种功能(如SQL语句编写和图形化面向对象编程知识)。数据库管理员负责数据库的设计、建立、执行和维护,以及应用程序开发。
(3)普通用户负责日常事务处理软件的操作。普通用户只要会操作图形化用户界面(Graphic User Interface,GUI)的程序即可,不需要理解数据库的SQL和编程等知识。因为图形化用户接口将普通用户对界面的操作最终转换为相应的SQL语句等有数据库管理系统提供的功能。
本书介绍成为关系数据库管理员所必须具备的基础知识。