|
(1)解释方法一些数据库系统(如dBASEⅢ)对上述方法进行了改进,通过尽量推迟聚束过程来赢得数据独立性。具体做法是:直到执行前,数据库DML语句都以原始字符串的形式保存。随着数据库系统的发展,这种方法已逐步为预编译技术所取代。
(2)预编译方法已经看到,将聚束过程提前,固然可达到系统的高效率,但失去了数据库的一个主要优点———数据独立性;将聚束时间推迟,赢得了数据性,却增加了执行高效率的代价。预编译方法就是为了克服它们的缺点,保持两者的优点而提出的。其基本思想是,在用户提供了DML语句后,在运行前对它进行翻译处理,保存产生好的执行代码,运行时加以执行。但是,使用这种方法会遇到这样的问题:在聚束过程中进行优化所依据的条件可能在运行前已不存在,或者数据结构被修改,因而导致已作出的规划在执行时不再有效。例如,假设在聚束过程中决定使用某一索引来加快存取速度,而在程序编译完成之后,运行之前,该索引被删除了。那么,运行时就会出现不可预测的现象。为了解决这类问题,采用了重编译方法。即当数据库中某些成分的改变而使一些程序的编译结果无效时,再对它们执行一次编译。重编译可在不同时刻进行。为了提高整个系统的效率,不应在数据库某一成分改变后就马上对受影响的那些源程序重编译,较好的方法是将受影响的编译结果置“无效”标志,在其被执行时才进行自动重编译。自动重编译技术使得编译方法既拥有了编译时进行束缚所带来的高效率,又具备了执行时束缚所带来的数据独立性。实践证明,预编译方法的效率比其它方法高两倍以上。
7.数据存取层
数据存取层介于语言处理层和数据存储之间。它向上提供单元组接口,即导航式的一次一个元组的存取操作。向下则以系统缓冲区的存储器接口作为实现基础。
(1)提供一次一个元组的查找、插入、删除、修改等基本操作。
(2)提供元组查找所循的存取路径以及对存取路径的维护操作。如对索引记录的查找、插入、删除、修改。
(3)对记录和存取路径的封锁、解锁操作。
(4)日志文件的登记和读取操作。
(5)辅助操作。如扫描、合并/排序,其操作对象有关系、有序表、索引等。为了完成上述功能,通常把存取层又划分为若干功能子系统加以实现。
8.缓冲区管理
数据存取层的下面是数据存储层(简称存储层)。存储层的主要功能是存储管理。包括缓冲区管理、内外存交换、外存管理等。其中缓冲管理是最主要的。存储层向存取层提供的接口是由定长页面组成的系统缓冲区。系统缓冲区的设立是出于两方面的原因:一是它把存储层以上各系统成分和实在的外存设备隔离。外存设备的变更不会影响其它系统成分,使DBMS具有设备独立性。二是提高存取效率。DBMS利用系统缓冲区滞留数据。当存取层需要读取数据时存储子系统首先到系统缓冲区中查找。只有当缓冲区不存在该数据时才真正从外存读入该数据所在的页面。当存取层写回一元组到数据库中时,存储子系统并不把它立即写回外存,仅把该元组所在的缓冲区页面作一标志,表示可以释放。只有当该用户事务结束或结束缓冲区已满需要调入新页时才按一定的淘汰策略把缓冲区中已有释放标志的页面写回外存。这样可以减少内外存交换的次数,提高存取效率。系统缓冲区可由内存或虚存组成。由于内存空间紧张,缓冲区的大小、缓冲区内存和虚存部分的比例要精心设计。针对不同的应用和环境按一定的模型进行调整。既不能让缓冲区占据太大内存空间,也不能因空间太小而频频缺页调页,造成“抖动”,影响效率。缓冲区由控制信息和若干定长页面组成。缓冲区管理模块向上层提供的操作是缓冲区的读(READBUF)、写(WRITEBUF)。缓冲区内部的管理操作有:查找页、申请页、淘汰页。缓冲区管理调用OS的操作有:读(READ)、写(WEITE)。
9.数据库的物理组织
数据库是大量数据的有结构的综合性的集合,如何将这样一个庞大的数据集合以最优的形式组织起来存放在外存上是一个非常重要的问题。所谓“优”应包括两方面:一是存储效率高,节省存储空间;二是读取效率高,速度快、代价小。数据库实现的基础是文件,对数据库的任何操作最终要转化为对文件的操作。所以在数据库物理组织中,基本的问题是如何设计文件组织或者利用操作系统提供的基本的文件组织方法。但是,在数据库中表和文件不必具有一一对应关系。这和操作系统中不一样。DBMS可以建立只能自己读写的文件,在其中存储多个表的数据。数据系统是文件系统的发展。文件系统中每个文件存储同质实体的数据,各文件是孤立的,没有体现实体之间的联系。数据库系统中数据的物理组织必须体现实体之间的联系,支持数据库的逻辑结构———各种数据模型。因此数据库中要存储4个方面的数据:数据描述。即数据外模式、模式、内模式。数据本身。数据之间的联系。存取路径。这4个方面的数据内容都要采用一定的文件组织方式组织、存储起来。
(1)数据字典(DD)的组织 有关数据的描述存储在数据库的数据字典中。数据字典的特点是数据量比较小(与数据本身比)、使用频繁,因为任何数据库操作都要参照数据字典的内容。数据字典在网状、层次数据中常常用一个特殊的文件来组织。所有关于数据的描述信息存放在一个文件中。
(2)数据及数据联系的组织 关于数据自身的组织,DBMS可以根据处理的要求自己设计文件结构,也可以从操作系统提供的文件结构中选择合适的加以实现。目前,操作系统提供的常用文件结构有:顺序文件、索引文件、索引顺序文件、HASH文件(杂凑文件)和B树类文件等等。数据库中数据组织与数据之间联系是紧密结合的。在数据的组织和存储中必须直接或间接、显式或隐含地体现数据之间的联系,这是数据库物理组织中主要考虑和设计的内容。关系数据库中实现了数据表示的单一性。实体及实体之间的联系都用一种数据结构———“表”来表示。在数据库的物理组织中,每一个表通常可以对应一种文件结构。因此数据和数据之间的联系两者组织方式相同。
共22页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 15 [16] [17] [18] [19] [20] [21] [22] 下一页
|