时间:2022-11-16 18:30:01 | 来源:信息时代
时间:2022-11-16 18:30:01 来源:信息时代
数据库管理系统存储系统层 : DBMS中负责和计算机硬件或操作系统打交道的最底层,其功能是进行存储管理,亦即管理系统缓冲区,管理外存和负责内外存交换。它的下层接口有两种情况,或以硬件设备作为基础,或以操作系统的存取原语作为基础。它向上一层提供的则是存储器接口,即系统缓冲区。系统缓冲区处于内存,是由定长页面组成的逻辑线性地址空间,一切其他系统层或系统成分均立足于系统缓冲区之上,与实在的外存设备是互相隔离的。外存设备的变动不会影响其他系统成分,从而提供了设备独立性。作为内存中承载数据处理的平台,由定长的页面组成系统缓冲区。
系统缓冲区的大小和定长页面的尺寸因各系统而异,不同的数据库管理系统,不同的操作系统和不同的硬件配置会有不同大小的系统缓冲区和不同尺寸的定长页面。一般页面尺寸可能是8K byte,16K byte甚至是64K byte。
通常数据库的规模都十分庞大,不易管理。一种常用的方法是将数据库划分成段(segment或area)。段是逻辑上互相关联的地址空间,利用相对字节(byte)地址进行直接编址,其编址起自段头,终于段尾,不考虑段内分页的边界。段作为存储管理的单位可看作存储一个或多个关系的容器,包括所有被包含关系的描述信息,所有的元组和存取路径都统一地由段进行存储、检查和管理。应注意关系只能属于一个段,即不能跨段存储。
数据库分段的理由很多,摘要而言有:
(1)便于将数据库划分为联机存储和脱机存储。
(2)便于动态地分配不同类型的存储。
(3)便于数据的物理恢复。
(4)便于有效地封锁
(5)便于数据安全。
数据库管理系统的存储系统层涉及的对象有外存、系统缓冲区和内存。数据库(DB)由于规模庞大,一般不可能同时进入系统缓冲区(system buffer,SB),更不可能同时进入内存(memory,M)。设DB由D页组成,SB由N页组成,SB能取用的内存数为M页。一般总有D>>N>M。
当发生一数据请求时,亦即请求存取DB的某个页面时,总是先查找SB,看该DB页是否在SB中。如果在SB中则可继续进行处理; 若不在SB中就称为发生了SB页故障或SB缺页(system buffer page faults,SBF)。这时就需由系统缓冲区管理程序(system buffer manager,SBM)将所请求的DB页从DB取入SB中。
系统缓冲区(SB)是一个虚存,一般不可能全部处于内存中。当所请求的SB页不在内存中时就发生M页故障或M缺页(memory page faults,MF)。这时需由虚存管理程序(virtual memory manager,VMM)将所请求的SB页调入内存。调页关系如图1所示。
图1 存储空间的组织和映射