在上述1.1.2节中,已介绍过数据库管理系统(DBMS)的概念,是对数据库及数据进行统一管理和控制的系统软件。DBMS是一个复杂的软件系统,由许多模块组成。由于DBMS的用途、版本及复杂程度各异,其程序不尽相同,按程序实现的功能DBMS可以分为4部分。
按模块结构分DBMS组成
1)语言编译处理程序,主要包括数据定义语言(Data Definition Language,DDL)、数据操作语言(Data Manipulation Language,DML)、数据控制语言(Data Control Language,DCL)和事务管理语言(Transact Management Language,TML)功能及其编译程序。
2)系统运行控制程序,主要包括系统总控程序、安全性控制程序、完整性控制程序、并发控制程序、数据存取和更新程序,以及通信控制程序。
3)系统建立与维护程序,主要包括装配程序、重组程序和系统恢复程序。
4)数据字典,对于用户为一组只读的表,其内容包括数据库中所有模式对象特征的描述信息,如表、视图及索引等;还包括来自用户的信息、系统状态信息和数据库的统计信息等。
数据字典的基本概念
在计算机系统中,对数据的管理是通过DBMS和数据库实现的。其主要功能如下。
1)数据定义(建立)功能,主要通过DBMS的数据定义语言(DDL)提供,主要定义数据库及其组成元素的结构。用户利用DDL可以方便地对数据库中的相关内容进行定义,如对数据库、基本表、视图和索引进行定义。
2)数据操作(操纵)功能,主要是通过DBMS的数据操作语言(DML)进行提供。用户可用DML实现对数据库的基本操作,如对数据库中数据进行查询、插入、删除和修改等。个别文献称为数据操纵语言,并将数据查询语言(Data Query Language,DQL)单列。
3)事务与运行管理是DBMS的核心功能。DBMS提供了数据控制语言(DCL)、事务管理语言(TML)和系统运行控制程序等,在数据库的建立、运行和维护时,可由DBMS统一管理和控制具体事务的操作与运行,并保证数据的安全性、完整性、多用户对数据并发使用及意外时的系统恢复。
4)组织、管理和存储数据。DBMS可对各种数据进行分类组织、管理和存储,包括用户数据、数据字典、数据存取路径等。确定文件结构种类、存取方式(索引查找、顺序查找等)和数据的组织,实现数据之间的联系等,提高了存储空间的利用率和存取效率。
5)数据库的建立和维护功能。数据库的建立是指数据的载入、存储、重组与恢复等。数据库的维护是指数据库及其组成元素的结构修改、数据备份等。数据库的建立和维护主要包括数据库初始数据的输入、转换,数据库的转储与恢复,数据库的重新组织功能、性能监视、分析功能等。上述功能可利用相关的应用程序或管理工具实现。
6)DBMS的其他功能,主要包括DBMS同其他软件系统的数据通信功能,不同DBMS或文件系统的数据转换功能,不同数据库之间的互访和互操作功能等。
DBMS的工作机制是将用户对数据的操作转化为对系统存储文件的操作,有效地实现数据库三级模式结构之间的转化。通过DBMS可以进行数据库及数据的定义和建立、数据库和数据的操作(输入、查询、修改、删除、统计、输出等)与管理,以及数据库的控制与维护、故障恢复和交互通信等。
DBMS基于数据模型
DBMS是数据库系统的核心和关键,用于统一管理控制数据库系统中的各种操作,包括数据定义、查询、更新及各种管理与控制。如定义(建立)、操作(处理)、管理与维护数据库和数据,以及数据库的备份与恢复等。DBMS的工作模式示意图,如图1-21所示。
图1-21 DBMS的工作模式示意图
DBMS的查询操作工作模式如下。
1)接收应用程序(用户)的数据请求和处理请求。
2)将用户的查询数据请求(高级指令)转换成复杂的低层指令。
3)低层指令实现对数据库的具体操作。
4)接收数据库操作得到的查询结果。
5)对查询结果进行处理,包括相应的格式转换。
6)将处理结果返回给用户(终端)。
【案例1-10】 利用DBMS查询示例图。为了使读者对数据库系统工作有一个更具体深入的了解,下面以一个查询select操作为例,演示该命令执行的主要步骤,其执行过程如图1-22所示。
图1-22 用户访问数据的过程
DBMS是数据库系统的核心,需要借助操作系统对数据进行统一管理和控制。
①当用户执行应用程序,查询一条数据库记录时,就会向DBMS发出查询select命令。
②DBMS接到命令后,首先对命令进行语法检查。语法检查通过后,对其进行语义检查和存取权限检查。
③DBMS对查询(对象:数据库、数据表、数据,以及结构、格式和位置等)进行优化。
④DBMS在数据缓冲区中查找记录,如果找到则转到步骤⑨;否则,转到步骤⑤。
⑤DBMS与数据字典进行交互,得到数据存储模式信息。
⑥DBMS向操作系统发出读取记录命令。
⑦操作系统接到DBMS的文件读取指令后,读取相应文件。
⑧操作系统将读取到的数据送到数据缓冲区。
⑨DBMS导出用户所要的数据。
⑩应用程序将缓存区的数据传送到终端。
⑪DBMS将命令执行的状态返回给应用程序,应用程序根据返回状态判断命令执行是否成功。