数据库系统实现-辅助存储管理

数据库系统实现 - 辅助存储管理


在这里插入图片描述

磁盘被划分为磁盘块 每一块的大小为4~64KB,整个块每从一个称为缓冲区的连续内存区域中移进移出。
加速数据库操作的关键是安排好数据,使得当某一个磁盘块中有数据被访问时,大约在同时很可能有该块上的其他数据也需要被访问。

典型的软件运行在虚拟存储器中,即一个32(64)位的地址空间。即在虚拟存储器中有2^32B。操作系统管理虚拟存储器,让它的一部分留在内存中,剩下的保存在磁盘中。内存和磁盘之间的数据传送以磁盘块(页)为单位。

磁盘

在这里插入图片描述
磁盘被组织成磁道,磁道是单个盘片上的同心圆,所有盘面上半径相同的磁道构成了柱面(cylinder),沿着磁道的数据密度大于沿着半径的数据密度。
磁道被组织成扇区,扇区是被间隙(gap)分割的圆的片段。就读写磁盘而论,扇区是不可分割的单位,就磁盘错误而言,它也是不可分割的单位。倘若一部分磁化层被以某种方式损坏,那么包含这部分的整个扇区也不能再使用。
2.1最后提到内存和磁盘之间以磁盘块(页)为单位进行数据交换,这里的磁盘块是逻辑概念,实际上包含了一个或多个扇区。
在这里插入图片描述

加速对辅助存储器的访问

磁盘访问一个磁盘块平均需要10ms。

计算的I/O模型

在这里插入图片描述

按柱面组织数据

寻道时间通常占平均块访问时间的一半,将一些可能被一起访问的数据,例如关系,存储在单个柱面上或几个临近的柱面上是有意义的。

使用多个磁盘

磁盘镜像

有两个或更多的磁盘保留同样的数据副本。这些磁盘被称作互相镜像。

磁盘调度和电梯算法

在这里插入图片描述

预取和大规模缓冲

有些情况下,能够提前预测从磁盘请求块的顺序,就能够提前将它们存入主存。

磁盘故障

![image6][temp6]

磁盘驱动器直接控制磁盘,磁盘控制器控制多个磁盘驱动器

校验和

每个扇区有若干个附加位,称为校验和(checksum),附加位的设置取决于存储在那个扇区的数据位的值。
校验和的一种简单形式是基于扇区内所有位的奇偶性。如果在二进制的集合中有奇数个1,我们就说数据有奇数奇偶性并增加值为1的奇偶位,偶数同理。从而:
在二进制位的集合与它们的奇偶位中,1的个数总是偶数。
eg:
如果所有二进制位中的1的个数为奇数,比如11001,则在其后面增加值为1的奇偶位,变成110011;如果所有二进制位中的1的个数为偶数,比如11000,则在其后面增加值为0的奇偶位,变成110000,这样使得整个扇区的二进制位中的1的个数为偶数。 因此每个扇区将具有偶数奇偶性。

如果某个扇区位奇数奇偶性,则说明读或者写出错。
在这里插入图片描述

稳定存储

组织磁盘上的数据

定长记录

用一个记录来表示一个数据元素(元组或对象)在磁盘块中的连续字节存放。通常来讲,通过将表示数据元素的记录放在一个或多个磁盘块中来表示诸如关系的数据集。一个磁盘块中仅存放一个关系的元素是一种常见的组织方式。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当数据的开始地址位4或8的倍数时,会有更高效率的内存读写。

定长记录在块中的位置

表示关系元组的记录存储在磁盘块中,当我们需要存取或修改记录时,记录(与整个块一起)就被移进主存。

image10

块和记录地址的表示

在内存中,块地址是其第一个字节的虚拟内存地址,且块内记录的地址是该记录的第一个自己的虚拟内存地址。

客户机-服务器系统中的地址

通常,数据库系统包括一个服务器进程,它为一个或多个客户端进程提供二级存储器数据。
客户端应用使用常规的“虚拟”地址空间,OS或者DBMS决定地址空间的哪些部分目前在内存中。
服务器的数据处于数据库地址空间,空间中的地址涉及块或块内偏移。在数据库地址空间中,表示地址的方式:

image11

猜你喜欢

转载自blog.csdn.net/weixin_42749767/article/details/82987387