约定:一条记录表示一个数据元素(元祖或对象),在磁盘块(操作系统和磁盘交互的最小单位)中的连续字节存放。
模式:模式是表,视图,断言,触发器和其他信息类型。
目录:模式的集合,支持唯一的可访问术语的基本单元,每个目录有一个或多个模式,目录中模式名唯一,每个目录包含一个特殊模式,该模式包含了目录下所有模式的信息。
簇:目录的集合。每个用户有关联的簇,表示用户可访问的所有目录。簇是被提交的查询的最大范围,所以一定程度上,簇就是用户看到的数据库。
通常一个磁盘块只保存一个关系的元素(关系就是表,元素就是记录)。但是也可能一个磁盘块保存多个关系的元素。
本文讲解记录与磁盘块的基本组织技术。
1. 定长记录
记录以记录的首部开始,首部是关于记录自身信息的一个定长区域,保存如下信息
当数据的开始地址是4或8的倍数时,很多机器允许甚至要求更高的内存读取速率,所以通常会要求数据的开始地址是4或8的倍数。
1.一个指向该记录存储数据模式的指针。例如一个元祖的记录可以指向元祖所属的关系的模式,此信息可以帮忙找到记录的字段。
2.记录长度,此信息可以帮助我们在不用查看模式的情况下略过某些记录
3.时间戳,标志这条记录最后一次被修改或者被读取的时间,此信息用于事务操作。
4.指向记录字段的指针,此信息可以代替模式信息。
下图为一个模式的例子和对应的记录格式
![](https://img.haomeiwen.com/i4612420/0efcd2c28ff5754b.png)
![](https://img.haomeiwen.com/i4612420/54b0b8bdd372bc48.png)
一个或多个记录存放在块中,如下图
![](https://img.haomeiwen.com/i4612420/f0b5e6432be2709d.png)
除了记录,还有一个可选的块首部,存储如下信息
1、与其他块的连接,这些连接构成一个块网。用处如构建一整个关系所含元祖的块网。
2、表明这个块在块网中扮演的角色的信息
3、关于这个块的元祖属于哪个关系的信息
4、给出每一个记录在快内偏移量的目录(类比数组)
5、指明块最后一次修改和存取时间的时间戳
最简单的存储方式:块存储一个关系的元祖,元祖有固定格式。我们吧尽可能多的记录装入块内,留下剩余空间不用。
例:我们有一个4096字节的块(4KB),存储具有316字节长度的记录。12个字节存放首部,存放12条记录,剩余292字节小于单条记录长度,不用。
2、地址
计算机有一个虚拟的地址空间,里面有32位(或者说40亿)不同的地址,所以32位系统最多支持4g(4*10十次方)内存,现在是64位(128亿)了。操作系统或DBMS决定地址空间里那些部分目前在内存里,而硬件则将虚拟地址空间映射到主存的物理地址上。这里不进一步探讨虚拟地址转换到物理地址的过程,将客户端的地址空间看做主存本身。
物理地址
待更
网友评论