admin管理员组

文章数量:1530842

2024年3月4日发(作者:)

(1)用户界面友好 对一个实用 DBMS 来说,用户界面的质量直

接影响其生命力。 DBMS 的用户接口应面向应用, 采用适合最终用户

的交互式、表格式、菜单式、窗口式等界面形式 , 以方便使用和保持

灵便性。普通地说,用户界面应具有可靠性、简单性、灵便性和即将

反馈等特性.

(2)功能完备 DBMS 功能随系统的规模的大小而异。大型 DBMS

功能齐全,小型 DBMS 功能弱一些。 DBMS 主要功能包括数据定义、

数据库数据存取、事务控制、数据库组织和存储管理、数据库安全保

护等等。我们在下面讨论这些功能的内容。

(3)效率高 系统效率包括三个方面 :一是计算机系统内部资源的

使用效率。能充分利用资源(包括存储空间、设备、 CPU 等),并注

意使各种资源负载均衡以提高整个系统的效率,二是 DBMS 本身的

运行效率。三是用户的生产率。这是指用户学习、使用 DBMS 和在

DBMS 基础上开辟的应用系统的效率。

(1)数据库定义 对数据库的结构进行描述,包括外模式、模式、

内模式的定义;数据库完整性的定义 ;安全保密定义(如用户口令、

级别、存取权限);存取路径(如索引)的定义.这些定义存储在数据

字典(亦称为系统目录)中,是 DBMS 运行的基本依据。为此,提供

数据定义语言 DDL.

(2)数据存取 提供用户对数据的控制功能 ,实现对数据库数据

的检索、插入、修改和删除。一个好的 DBMS 应该提供功能强易学

易用的数据控制语言 (DML)、方便的操作方式和较高的数据存取效

率。DML 有两类:一类是宿主型语言, 一类是自含型语言.前者的语句

不能独立使用而必须嵌入某种主语言,如C 语言、 COBOL 语言中使

用.而后者可以独立使用,通常以供终端用户交互使用和批处理方式

两种形式使用。

(3)数据库运行管理 这是指 DBMS 运行控制、管理功能。包括

多用户环境下的并发控制、 安全性检查和存取权限控制、 完整性检查

和执行、数据加密、运行日志的组织管理、事务的管理和自动恢复(保

证事务的正确性) ,这些功能保证了数据库系统的正常运行.

(4)数据组织、存储和管理 DBMS 要分门别类地组织、存储各类

数据,包括数据字典(亦称系统目录)、用户数据、存取路径等等。要

确定以何种文件结构和存取方式在存储级上组织这些数据, 如何实现

数据之间的联系。数据组织和存储的基本目标是提高存储空间利用

率,选择合适的存取方法确保较高存取 (如随机查找、 顺序查找、 增、

删、改)效率。

(5)数据库的建立和维护 包括数据库的初始建立、数据的转换、

数据库的转储和恢复、数据库的重组织和重构造以及有性能监测分析

等功能。

(6)其它功能 包括 DBMS 与网络中其它软件系统的通信功能;

一个 DBMS 与另一个 DBMS 或者文件系统的数据转换功能等。

通常 DBMS 是建立在操作系统环境之上的。根据具体操作系统

的特点, DBMS 可以用不同的方法利用操作系统的基本功能来实现

DBMS。普通有下面 3 类方法:

(1)共享模块法

(2)分离进程法

(3)和操作系统融合

作为一个庞大的系统软件, DBMS 由众多程序模块组成, 它们分

别实现 DBMS 复杂而繁多的功能。数据库定义方面 有 DDL 翻译处

理程序(包括外模式、模式、存储模式处理程序)、保密定义处理程序

(如授权定义处理程序)、完整性约束定义处理程序等。这些程序接

收相应的定义,进行语法、 语义检查,把它们翻译为内部格式存储在

数据字典中。 DDL 翻译程序还根据模式定义负责建立数据库的框架

(即形式一个空库),等待装入数据。

数据库控制方面 有 DML 处理程序、终端查询语言解释程序、

数据存取程序、数据更新程序等。 DML 处理程序或者终端查询语言解 释程序对用户数据控制请求进行语法、 语义检查, 由数据存取或者更新 程序完成对数据库的存取操作.

数据库运行管理方面 有系统初启程序,负责初始化 DBMS、建

立 DBMS 的系统缓冲区、系统工作区、打开数据字典等等。还有安

全性控制、完整性检查、并发控制、事务管理、运行日志管理等程序

模块, 在数据库运行过程中监视着对数据库的所有操作, 控制管理数

据库资源,处理多用户的并发操作等 .它们一方面保证用户事务的正

常运行,一方面保证数据库的安全性和完整性。数据库组织、存储和

管理方面 有文件读写与维护程序、存取路径(如索引)管理程序、

缓冲区管理程序(包括缓冲区读、写、淘汰等模块),这些程序负责维

护数据库的数据和存取路径,提供有效的存取的方法。

数据库建立、维护和其它 .有数据库初始数据装入程序、转储程

序、恢复程序、数据库重构造程序、数据转换程序、通信程序等。

DBMS 的这些组成模块互相联系,互相依赖,共同完成 DBMS

复杂的功能.这些模块之间的联系有一定的层次关系。

和操作系统一样,可以也应该将 DBMS 划分成若干层次。许多

DBMS 实际上就是分层实现的。最上层是应用层,位于 DBMS 核心

之处。 它处理的对象包括各种各样的数据库应用, 如用宿主语言编写

的应用程序、终端用户通过应用接口(如 FORMS)发出的事务请求

等。该层是 DBMS 的最终用户和应用程序的界面层。第二层是语言

翻译处理层.它处理的对象是数据库语言,如 SQL。提供的数据接口是

关系、视图,即元组的集合。其功能是对数据库语言的各类语句进行

语法分析、视图转换、授权检查、完整性检查、查询优化等。通过对

下层基本模块的调用,生成可执行代码。这些代码的运行,即可完成

数据库语句的功能要求.

第三层是数据存取层。 该层处理的对象是单个元组。 它把上层的

集合操作转化为单记录操作 .执行扫描、排序、元组的查找、插入、

修改、 删除、 封锁等基本操作。 完成数据记录的存取、 存取路径维护、

并发控制、事务管理等工作。

第四层是数据存储层.该层处理的对象是数据页和系统缓冲区,

执行文件的逻辑打开、关闭、读页、写页、缓冲区读和写、页面淘汰

等操作,完成缓冲区管理、内外存交换、外存管理等功能 .操作系统

是 DBMS 的基础,它处理的对象是数据文件的物理块。执行物理文

件的读写操作,保证 DBMS 对数据逻辑上的读写真实地映射到物理

文件上。操作系统提供的存取原语和基本的存取方法通常作为和

DBMS 存储层的接口。

语言翻译处理层的任务就是 把用户在这两种方式下提交给

DBMS 的数据库语句转换成对 DBMS 内层可执行的基本存取模块的

调用序列。

数据库语言通常包括 DDL、DML、DCL 三部份语句。 DDL 语句

处理相对独立和简单。 DML 和 DCL 则较为复杂。

具体来说, 对 DDL 语句,语言翻译处理层首先把它翻译成内部表

示,然后把它存储在系统的数据字典中.对 DCL 语句的定义部份, 如安

全保密定义、存取权限定义、完整性约束条件定义等处理与 DDL 相

同。

在 RDBMS 中数据字典通常采用和普通数据同样的表示方式.数

据字典包括关系定义表、属性表、视图表、视图属性表、视图表达式

表、用户表、存取权限表、……。

(1)解释方法

一些数据库系统(如 dBASEⅢ)对上述方法进行了改进,通过

尽量推迟聚束过程来赢得数据独立性。具体做法是:直到执行前,数

据库 DML 语句都以原始字符串的形式保存.随着数据库系统的发展,

这种方法已逐步为预编译技术所取代.

(2)预编译方法

已经看到,将聚束过程提前,固然可达到系统的高效率,但失去

了数据库的一个主要优点-—-数据独立性;将聚束时间推迟,赢得了

数据独立性, 却增加了执行高效率的代价。 预编译方法就是为了克服

它们的缺点,保持两者的优点而提出的。其基本思想是 ,在用户提供

了 DML 语句后,在运行前对它进行翻译处理,保存产生好的执行代码,

运行时加以执行.

但是, 使用这种方法会遇到这样的问题: 在聚束过程中进行优化

所依据的条件可能在运行前已不存在, 或者数据结构被修改, 于是导

致已作出的规划在执行时再也不有效。 例如, 假设在聚束过程中决定使 用某一索引来加快存取速度,而在程序编译完成之后,运行之前

,该 索引被删除了。那末,运行时就会浮现不可预测的现象.

为了解决这种问题,采用了重编译方法。即当数据库中某些成份

的改变而使一些程序的编译结果无效时, 再对它们执行一次编译。 重

编译可在不同时刻进行。为了提高整个系统的效率 ,不应在数据库某

一成份改变后就即将对受影响的那些源程序重编译, 较好的方法是将

受影响的编译结果置“无效”标志,在其被执行时才进行自动重编译。

自动重编译技术使得编译方法既拥有了编译时进行束缚所带来

的高效率,又具备了执行时束缚所带来的数据独立性。实践证明,预

编译方法的效率比其它方法高两倍以上.

数据存取层介于语言处理层和数据存储之间。它向上提供单元组

接口,即导航式的一次一个元组的存取操作 . 向下则以系统缓冲区的

存储器接口作为实现基础.

(1)提供一次一个元组的查找、插入、删除、修改等基本操作。

(2)提供元组查找所循的存取路径以及对存取路径的维护操作。

如对索引记录的查找、插入、删除、修改。

(3)对记录和存取路径的封锁、解锁操作。

(4)日志文件的登记和读取操作。

(5)辅助操作。如扫描、合并/排序,其操作对象有关系、有序

表、索引等。为了完成上述功能,通常把存取层又划分为若干功能子

系统加以实现.

数据存取层的下面是数据存储层(简称存储层) .存储层的主要

功能是存储管理。包括缓冲区管理、内外存交换、外存管理等。其中

缓冲管理是最主要的。存储层向存取层提供的接口是由定长页面组成

的系统缓冲区。

系统缓冲区的设立是出于两方面的原因: 一是它把存储层以上各

系统成份和实在的外存设备隔离。外存设备的变更不会影响其它系统

成份,使 DBMS 具有设备独立性。二是提高存取效率。 DBMS 利用

系统缓冲区滞留数据。 当存取层需要读取数据时存储子系统首先到系

统缓冲区中查找。 惟独当缓冲区不存在该数据时才真正从外存读入该

数据所在的页面。 当存取层写回一元组到数据库中时, 存储子系统并

不把它即将写回外存, 仅把该元组所在的缓冲区页面作一标志, 表示

可以释放。 惟独当该用户事务结束或者结束缓冲区已满需要调入新页时 才按一定的淘汰策略把缓冲区中已有释放标志的页面写回外存。这样 可以减少内外存交换的次数,提高存取效率。

系统缓冲区可由内存或者虚存组成。 由于内存空间紧张, 缓冲区的 大小、 缓冲区内存和虚存部份的比例要精心设计。 针对不同的应用和 环境按一定的模型进行调整。 既不能让缓冲区占领太大内存空间, 也 不能因空间太小而频频缺页调页,造成“颤动",影响效率。

缓冲区由控制信息和若干定长页面组成。缓冲区管理模块向上层

提供的操作是缓冲区的读(READBUF)、写(WRITEBUF)。缓冲区

内部的管理操作有:查找页、申请页、淘汰页.缓冲区管理调用 OS 的

操作有:读(READ)、写(WEITE) .

数据库是大量数据的有结构的综合性的集合 ,如何将这样一个庞

大的数据集合以最优的形式组织起来存放在外存上是一个非常重要

的问题。所谓“优"应包括两方面:一是存储效率高,节省存储空间;

二是读取效率高,速度快、代价小。

数据库实现的基础是文件 ,对数据库的任何操作最终要转化为对

文件的操作。 所以在数据库物理组织中, 基本的问题是如何设计文件

组织或者利用操作系统提供的基本的文件组织方法。 但是, 在数据库

中表和文件不必具有一一对应关系。这和操作系统中不一样。 DBMS

可以建立只能自己读写的文件,在其中存储多个表的数据.

数据系统是文件系统的发展。文件系统中每一个文件存储同质实体 的数据,各文件是孤立的, 没有体现实体之间的联系。数据库系统中 数据的物理组织必须体现实体之间的联系, 支持数据库的逻辑结构— -—各种数据模型。因此数据库中要存储 4 个方面的数据:数据描述。 即数据外模式、模式、内模式.数据本身。

数据之间的联系。存取路径。

这 4 个方面的数据内容都要采用一定的文件组织方式组织、存储

起来。

(1)数据字典(DD)的组织 有关数据的描述存储在数据库的数

据字典中。数据字典的特点是数据量比较小(与数据本身比)、使用

频繁, 因为任何数据库操作都要参照数据字典的内容。 数据字典在网

状、层次数据中往往用一个特殊的文件来组织 .所有关于数据的描述

信息存放在一个文件中。

(2) 数据及数据联系的组织 关于数据自身的组织, DBMS 可以

根据处理的要求自己设计文件结构 ,也可以从操作系统提供的文件结

构中选择合适的加以实现。目前,操作系统提供的常用文件结构有:

顺叙文件、索引文件、索引顺叙文件、 HASH 文件(杂凑文件)和B

树类文件等等。 数据库中数据组织与数据之间联系是密切结合的。 在

数据的组织和存储中必须直接或者间接、显式或者隐含地体现数据之间的 联系,这是数据库物理组织中主要考虑和设计的内容。

关系数据库中实现了数据表示的单一性。实体及实体之间的联系

都用一种数据结构——— “表”来表示。在数据库的物理组织中,每

一个表通常可以对应一种文件结构 . 因此数据和数据之间的联系两者

组织方式相同.

(3)存取路径的组织 关系数据库中, 存取路径和数据是分离的,

对用户是隐蔽的。存取路径可以动态建立、删除。存取路径的物理组

织通常采用 B 树类文件结构和 HASH 文件结构。在一个关系上可以

建立若干个索引。 有的系统支持组合属性索引, 即在两个或者两个以上 的属性上建立索引。 索引可以由用户用 CRETR INDEX 语句建立,

用 DROP INDEX 语句删除.在执行查询时, DBMS 查询优化模块也会根 据优化策略自动地建立索引, 以提高查询效率. 由此可见,关系数据库 中存取路径的建立是十分灵便的。

本文标签: 数据数据库存取缓冲区文件