层次结构
从层次结构的角度来分析数据库管理系统的结构。数据库管理系统可以由外至内分为四层:应用层、语言翻译处理层、数据存取层和数据存储层(应用层是最外层,数据存储层是最内层)。
以下介绍每一层的功能特点:
(1)应用层:是数据库管理系统与终端用户和应用程序的界面,负责处理各种数据库应用,如使用结构化查询语言SQL发出的事务请求或嵌入通用的程序设计语言的应用程序对数据库的请求。
(2)语言处理层:由DDL编译器、DML编译器、DCL编译器、查询器等组成,负责完成对数据库语言的各类语句进行词法分析、语法分析和语义分析,生成可执行的代码。此外,还负责进行授权检验、视图转换、完整性检查、查询优化等。
(3)数据存取层:将上层的集合操作转换为对记录的操作,包括扫描、排序、查找、插入、删除、修改等,完成数据的存取、路径的维护以及并发控制等任务。
(4)数据存储层:由文件管理器和缓冲区管理器组成,负责完成数据的页面存储和系统的缓冲区管理等任务,包括打开和关闭文件、读写页面、读写缓冲区、页面淘汰、内外存交换以及外层管理等。1
系统结构从系统功能方面来分析数据库管理系统的结构。一般来说,数据库管理系统应该具备以下功能:数据定义,数据操纵,数据库运行管理,数据组织、存储和管理,数据库的建立、维护和其他。而实现这些功能就需要相应的程序模块。以下分别介绍这些相应的程序模块:
(1)数据定义模块:包括DDL翻译处理程序(包括外模式、模式、存储模式处理程序)、保密定义处理程序(如授权定义处理程序)、完整性约束定义处理程序等。这些程序接收相应的定义,进行语法、语义检查,把它们翻译为内部格式存储在数据字典中。DDL翻译程序还根据模式定义负责建立数据库的框架(即形成一个空库),等待装入数据。
(2)数据操纵模块:包括DML处理程序、终端查询语言解释程序、数据存取程序、数据更新程序等。DML处理程序或终端查询语言解释程序对用户数据操纵请求进行语法、语义检查,有数据存取或更新程序完成对数据库的存取操作。
(3)数据库运行管理模块:包括系统初启程序,负责初始化DBMS,建立DBMS的系统缓冲区,系统工作区,打开数据字典等等。还有安全性控制,完整性检查、并发控制、事务管理、运行日志管理等程序模块,在数据库运行过程中监视着对数据库的所有操作,控制管理数据库资源,处理多用户的并发操作等。它们一方面保证用户事务的正常运行及其原子性,一方面保证数据库的安全性和完整性。
(4)数据组织、存储和管理模块:包括文件读写与维护程序、存取路径(如索引)管理程序、缓冲区管理程序(包括缓冲区读、写、淘汰模块),这些程序负责维护数据库的数据和存取路径,提供有效的存取方法。2
三级模式结构1975年,美国国家标准协会/标准计划和需求委员会(ANSI/SPARC)为数据库管理系统建立了三级模式结构,即内模式、概念模式和外模式。
(1)外模式:又称关系子模式或用户模式,是数据库用户看见的局部数据的逻辑结构和特征的描述,即应用程序所需要的那部分数据库结构。外模式是应用程序与数据库系统之间的接口,是保证数据库安全性的一个有效措施。用户可使用数据定义语言(DDL)和数据操纵语言(DML)来定义数据库的结构和对数据库进行操纵。对于用户而言,只需要按照所定义的外模式进行操作,而无需了解概念模式和内模式等的内部细节。一个数据库可以有多个外模式。
(2)概念模式:又称模式/关系模式/逻辑模式,是数据库整体逻辑结构的完整描述,包括概念记录模型、记录长度之间的联系、所允许的操作以及数据的完整性、安全性约束等数据控制方面的规定。概念模式位于数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,与应用程序、开发工具及程序设计语言无关。一个数据库只能有一个概念模式。
(3)内模式:又称存储模式,是数据库内部数据存储结构的描述。它定义了数据库内部记录类型、索引和文件的组织方式以及数据控制方面的细节。一个数据库只能有一个内模式。1
外部体系结构从数据库最终用户角度看,数据库系统的结构分为集中式(单用户结构、主从式结构)、分布式(客户机/服务器结构)和多层结构,这是数据库系统外部的体系结构。
(1)单用户应用结构:是运行在个人计算机上的结构模式,常称为桌面(Desktop)DBMS。属于单用户DBMS的主要产品有:Microsoft Access、Paradox、Fox系列。单用户的DBMS的功能在数据的一致性维护、完整性检查及安全性管理上是不完善的。目前,桌面数据库管理系统中比较好的有Access、Paradox等,它基本实现了DBMS应该具有的功能。
(2)主机/终端结构:是以大型主机为中心(Mainframe.Centric)的结构模式,也称为分时共享(Time—Sharing)模式,它是面向终端的多用户计算机系统(主从式结构)。该结构以一台主机为核心,将操作系统、应用程序、DBMS、数据库等数据和资源均放在该主机上,所有的应用处理均由主机承担,每个与主机相连接的终端都是作为主机的一种I/O设备。由于是集中式管理,主机的任何错误都有可能导致整个系统的瘫痪。因此,这种结构对系统的主机的性能要求比较高,维护费用也较高。
(3)客户机/服务器(Client—Server,C/S)结构:是随着计算机网络的广泛使用而出现的结构模式。该结构是将一个数据库分解为客户机(称为前端,Front—End)、应用程序和服务器(称为后端,Back-End)三部分,通过网络连接应用程序和服务器。由于C/S结构的本质是通过对服务功能的分布实现分工服务,因而又称为分布式服务模式。人们将C/S称为二层结构的数据库应用模式。
(4)多层数据库应用结构:将应用程序放在服务器端执行,客户机端安装统一的前端运行环境——浏览器,在客户机和服务器之间增加一层用于转换的服务器,形成三层结构的数据库应用模式,这就是Intemet/Intranet环境下数据库的应用模式。三层结构是由二层(C/S)结构扩展而来的,这种三层结构也称为浏览器/Web 服务器/数据库服务器(B/W/S)结构。1