数据库管理系统的功能与组成

人们通常所说的“数据库”,实质上是指“数据库管理系统”。 数据库管理系统是一个通用的管理数据库的软件系统,是由一组计算机程序构成的。数据库管理系统负责数据库的定义、建立、操纵、管理和维护,能够对数据库进行有效的管理,包括存储管理、安全性管理、完整性管理等。数据库管理系统提供了一个软件环境,使用户能方便快速地建立、维护、检索、存取和处理数据库中的信息。

数据库管理系统是数据库系统的核心。是为数据库的建立、使用和维护而配置的软件。它建立在操作系统的基础上,是位于操作系统与用户之间的一层数据管理软件.负责对数据库进行统一的管理和控制。用户发出的或应用程序中的各种操作数据库中数据的命令,都要通过数据库管理系统来执行。数据库管理系统还承担着数据库的维护工作,能够按照数据库管理员所规定的要求,保证数据库的安全性和完整性。

1. 数据库管理系统的功能

由于不同DBMS要求的硬件资源、软件环境是不同的,因此其功能与性能也存在差异,但一般说来,DBMS的功能主要包括以下6个方面。

1)数据定义

数据定义包括定义构成数据库结构的模式、存储模式和外模式,定义各个外模式与模式之间的映射,定义模式与存储模式之间的映射,定义有关的约束条件,例如,为保证数据库中数据具有正确语义而定义的完整性规则、为保证数据库安全而定义的用户口令和存取权限等。

2)数据操纵

数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作。

3)数据库运行管理

对数据库的运行进行管理是DBMS运行时的核心部分,包括对数据库进行安全性控制、完整性约束条件的检查和执行、多用户环境下的并发控制、数据库的内部维护(如索引、数据字典的自动维护)、数据库的恢复等。所有访问数据库的操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性、一致性以及多用户对数据库的并发使用。

4)数据组织、存储和管理

数据库中需要存放多种数据(如数据字典、用户数据、存取路径等),DBMS负责分门别类地组织、存储和管理这些数据,确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,以便提高存储空间利用率以及提高随机查找、顺序查找、增删改等操作的时间效率。

5)数据库的建立和维护

建立数据库包括数据库初始数据的装入(输入)与数据转换等。维护数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监视与分析等。

6)数据通信接口

DBMS需要提供与其他软件系统进行通信的功能。例如,提供与其他DBMS或文件系统的接口,从而能够将数据转换为另一个DBMS或文件系统能够接受的格式,或者接收其他DBMS或文件系统的数据。

2. 数据库管理系统的组成

为了提供上述6方面的功能,DBMS通常由以下4部分组成。

1)数据定义语言及其翻译处理程序

DBMS一般提供数据定义语句(data definition language,简称DDL),供用户定义数据库的模式、存储模式、外模式、各级模式间的映射、有关的约束条件等。用DDL定义的外模式、模式和存储模式分别称为源外模式、源模式和源存储模式,各种模式翻译程序负责将它们翻译成相应的内部表示,即生成目标外模式、目标模式和目标存储模式。这些目标模式描述的是数据库的框架,而不是数据本身。这些描述存放在数据字典(也称系统目录)中,作为DBMS存取和管理数据的基本依据。例如,根据这些定义,DBMS可以从物理记录导出全局逻辑记录,又从全局逻辑记录导出用户所要检索的记录。

2)数据操纵语言及其编译(或解释)程序

DBMS提供了数据操纵语言(data manipulation language,简称DML)实现对数据库的检索、插入、修改、删除等基本操作。DML分为宿主型DML和自主型DML两类。宿主型DML本身不能独立使用,必须嵌入主语言中,例如,嵌入C,COBOL,FORTRAN等高级语言中。自主型DML又称为自含型DML,它们是交互式命令语言,语法简单,可以独立使用。

3)数据库运行控制程序

DBMS提供了一些系统运行控制程序负责数据库运行过程中的控制与管理,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序等,它们在数据库运行过程中监视着对数据库的所有操作,控制管理数据库资源,处理多用户的并发操作等。

4)实用程序

DBMS通常还提供一些实用程序,包括数据初始装入程序、数据转储程序、数据库恢复程序、性能监测程序、数据库再组织程序、数据转换程序、通信程序等。数据库用户可以利用这些实用程序完成数据库的建立与维护,以及数据格式的转换与通信。

一个设计优良的DBMS,应该具有友好的用户界面、比较完备的功能、较高的运行效率、清晰的系统结构和开放性。所谓开放性是指数据库设计人员能够根据自己的特殊需要,方便地在一个DBMS中加入一些新的工具模块,这些外来的工具模块可以与该DBMS紧密结合,一起运行。现在人们越来越重视DBMS的开放性,因为DBMS的开放性为建立以它为核心的软件开发环境或规模较大的应用系统提供了极大的方便,也使DBMS本身具有更强的适应性、灵活性、可扩充性。

3. DBMS的数据存取的过程

在数据库系统中,DBMS与操作系统、应用程序、硬件等协同工作,共同完成数据各种存取操作,其中DBMS起着关键的作用。DBMS对数据的存取通常需要以下四步:

1)用户使用某种特定的数据操作语言向DBMS发出存取请求;

2)DBMS接受请求并解释;

3)DBMS依次检查外模式、外模式/模式映象、模式、模式/内模式映象及存储结构定义;

4)DBMS对存储数据库执行必要的存取操作;

上述存取过程中还包括安全性控制、完整性控制,以确保数据的正确性、有效性和一致性。