Storage Hierarchy存储层次结构
主存:最快,易失性
cache,主存
二级存储:非易失性,访问时间适中
闪存
闪存:可用于制造没有活动部件的驱动器
SSD,USB存储
Block Level Storage
Block: a logical unit for storage allocation and retrieval
Disk Structure
在每个块中,每个字节可以有自己的地址,称为偏移量
存取(读/写)块的时间
访问时间:从发出读取或写入请求到开始数据传输所花费的时间
访问方式
顺序访问模式
随机访问模式
Arranging Blocks on Disk
最快读取下一个磁盘块
按磁盘上的“下一个”顺序排列文件块
数据库文件
数据库存储为数据库文件的集合
块/页面是数据存储的基本单位
磁盘I / O操作在块/页面级别执行
Fixed Length Records固定长度记录
所有记录大小是固定的
每个记录具有相同的字段,并且字段长度是固定的
系统可以识别每个字段相对于记录起始位置的起始字节位置
Variable Length Records可变长度记录
我们不知道某些字段值的确切长度
确定代表每个字段的特定记录中的字节
数据库中的文件组织
堆文件组织
file顺序文件组织
B+树文件组织
Hash文件组织
堆文件组织(Heap File Organization)
记录可以放置在文件中任何有可用空间的地方
没有记录的顺序
一旦数据块已满,下一条记录将存储在新块中
记录一旦分配通常不会移动
找到记录的时间:假设有b个块,平均而言,找到记录时将访问(b / 2)个块,而找不到记录时将访问b个块
插入记录:对于堆文件组织,我们通过添加到现有记录来插入添加记录
删除记录:
第一种方法,删除记录后,将其后的记录移到以前由删除的记录占用的空间中,依此类推,需要移动大量记录
第二种方法,将文件的后续记录从已删除记录所占用的空间开始插入
第三种方法,保留已删除记录所占用的空间,并等待下一次插入,然后再使用该空间
优缺点
适合批量插入,只需将一个接一个地插入存储块即可
随着文件大小的增加,线性搜索记录变得很耗时
顺序文件
组织/排序记录
根据“搜索关键字”的值,记录按顺序存储
插入和删除记录时维护物理顺序的成本很高
使用指针将搜索顺序中的记录链接在一起
定期重新排序,以便以与物理顺序匹配的顺序存储记录