DATABASE SYSTEM CONCEPTS-Chapter10 Storage and File Structure
物理存储介质概述
- 高速缓冲存储器
- 主存储器
- 快闪存储器 电源关闭也可以保存数据
- 磁盘存储器
- 光学存储器
- 磁带存储器
- 基本存储 最快的存储介质(cache和主存)
- 辅助存储 基本存储的下一层介质
- 三级存储or脱机存储 最底层的介质
- 易失性存储 设备断电后将丢失所有内容
- 非易失性存储 设备断电后将不会丢失所有内容
磁盘和快闪存储器
- 磁盘的物理特性
- 盘片
- 磁道
- 扇区 磁道写入和读出信息的最小单位
- 读写头 将信息磁化存储到扇区中
- 磁盘臂 所有读写头安装在上面一起移动
- 柱面 所有盘片的第几条磁道
- 磁盘控制器 计算机系统和实际的磁盘驱动器硬件之间的接口
- 坏扇区的重映射
- 存储区域网
- 独立磁盘冗余阵列
- 网络附加存储NAS
- 磁盘性能的度量
- 访问时间
- 寻道时间 平均寻道时间
- 旋转等待时间
- 数据传输率
- 平均故障时间
- 磁盘块访问的优化
- 虚拟地址≈快号
- 一个块是一个逻辑单元,包含固定数目的连续扇区
- 顺序访问
- 随机访问
- 缓冲(buffering):从磁盘读取的块暂时存储在内存缓冲区
- 预读(read-ahead):当一个磁盘块被访问时,相同磁道的连续块也读入内存缓冲区
- 调度(scheduling):电梯算法
- 文件组织(file organization)
- 非易失性写缓冲区(nonvolatile write buffer)
- 日志磁盘:用于写顺序日志的磁盘,可以减少写等待时间
- 快闪存储
- NOR快闪 允许随机访问内存中的单个字
- NAND快闪 需要将整个数据页读取到主存储器
- NAND快闪便宜,存储容量高,使用更广泛
- 闪存的写入:不能直接覆盖,先擦除再重写,擦除块
- 转换表:逻辑到物理的页面映射存储到内存的转换表
- 损耗均衡:在物理块中均匀分布擦除操作的原则,因为物理页可能擦除过多而损坏
- 混合硬盘驱动器:结合了小容量闪存存储器的硬盘系统
RAID
- 目的:存储需求增长,为了提高性能和可靠性,易于管理和操作
- 独立磁盘冗余阵列
- 冗余
- 存储正常情况下不需要的额外信息,这些信息可用于故障时重建恢复
- 镜像:复制每一张磁盘
- 并行
- 数据拆分:提高传输速率的手段
- 比特级拆分:每个字节按比特分开,存储到多个磁盘上
- 块级拆分:将块拆分到多个磁盘上
- RAID级别
-
- RAID级别的选择
- 所需的额外磁盘存储带来的花费
- 在I/O操作数量方面的性能需求
- 磁盘故障时的性能
- 数据重建过程中的性能
- 软件RAID:不改变硬件层 只修改软件的RAID
- 硬件RAID:具有硬件支持的RAID
- RAID级别的选择
第三级存储
- 光盘
- 磁带
- 数字音频磁带DAT:几个GB
- 字线性磁带DLT:10~40GB
- Ultrium:100GB
- Amp螺旋扫描磁带:330GB
- 数据传输率在每秒几到几十MB
- 自动磁带机:存放大量磁道,并有少量可用于安装磁带的动器
文件组织
- 一个文件在逻辑上组织成为记录的一个序列
- 块:每个文件分成定长的存储单元,是存储分配和数据传输的基本单位
- 文件头:分配有一定数量的字节,包含有关文件的各种信息
- 定长记录
- 假设记录大小是固定的。
- 每个文件只包含一种特定类型的记录。
- 不同的文件用于不同的关系
- 用空闲链表来存储空余空间
- 变长记录
- 插槽页头(Slotted page header)包含以下内容:
- 记录条目的数量
- 块中空闲空间的结束位置
- 每个记录的位置和大小
- 可以在页面内部移动记录,以保持它们的连续性,中间没有空白空间;页头中的条目必须更新
- 指针不应直接指向记录,而应指向页头中记录对应的条目
- 插槽页头(Slotted page header)包含以下内容:
- 文件的记录组织
- 堆文件组织:一条记录可以放在文件中的有空间的任何地方(记录无顺序)
- 顺序文件组织:记录根据其搜索码的值顺序存储
- 搜索码是任何一个属性或者属性的集合
- 重组:使记录在物流上顺序存放
- 散列文件组织
- 多表聚簇文件组织:在每一块中存储两个或者更多个关系的相关记录的文件结构
数据字典存储
- 元数据:关于数据的数据
- 数据字典:存储关系的关系模式和其他元数据
- 系统必须存储的信息类型
- 关系的名字
- 每个关系中属性的名字
- 属性的域和长度
- 在数据库上定义的视图的名字和定义
- 完整性约束
数据库缓冲区
- 缓冲区:主存储器中用于存储磁盘块拷贝的部分
- 缓冲区管理器:负责缓冲区空间分配的子系统
- 为了使数据库系统能够从系统崩溃中恢复,限制一个块写回磁盘的时间是必要的
- 被钉住的块:不允许写回磁盘的块
- 块的强制写出
- 缓冲区替换策略
- 最近最少使用LRU
- 最近最常使用MRU