请使用支持现代 CSS 与 JavaScript 的浏览器播放课件
DBPA · 13.3

缓冲区管理与数据库物理组织

缓冲区把逻辑记录请求落实到页面、文件和索引路径

VER. 2608.3 Built with impress.js

学习目标

完成本节后,你应该能够

  1. 01解释系统缓冲区如何提供设备独立性和访问效率
  2. 02描述 READBUF 的命中、装入和淘汰,以及修改页的写回边界
  3. 03比较 FIFO 与 LRU 的依据和访问局部性
  4. 04列举数据库物理组织的四类信息
  5. 05说明数据字典、数据文件和存取路径之间的关系
  6. 06解释关系数据库如何让存取路径对用户隐藏并动态维护
2/12
LEARNING OBJECTIVES

系统缓冲区隔离上层访问与外存设备

上层只面对定长页面接口,命中时通常无需访问外存

缓冲区的命中、未命中、装入、淘汰与写回路径
Takeaway

缓冲区保存可替换的页面副本,通过定长接口提供设备独立性;命中时避免外存 I/O,未命中才需要装入页面

3/12
BUFFER PURPOSE

读取 SC 中未缓存的成绩记录

未缓存的 SC 成绩记录所在页面需要读入目标缓冲帧

路径缓冲区动作结果
命中READBUF 找到含有目标元组的页面直接取记录,不访问外存
未命中且有空闲页申请页面并调用 OS READ 装入目标页返回目标记录
未命中且候选页未修改选择可淘汰页后覆盖装入目标页返回目标记录
未命中且候选页已修改先满足先写日志约束并写回候选页,再装入目标页返回目标记录
4/12
BUFFER READ

延迟写回减少磁盘 I/O 并受恢复约束

脏页状态、可释放条件和写回时机分别影响淘汰决策

脏页

缓冲区中的页面已被修改,与外存版本不同

可释放标志

可释放标志表示页面需要空间时可以作为淘汰候选,不等于立即写回或随时可以淘汰

写回约束

事务结束或缓冲区需要空间时,系统可按策略处理可释放页面;选中被修改页面时先满足先写日志约束,再写回数据页

Takeaway

延迟写回减少内外存交换,但数据页写回仍受事务状态和恢复约束控制

5/12
WRITE BACK

页面淘汰策略决定哪些内容先离开缓冲区

策略要结合访问局部性、内存压力和页面状态选择

策略依据直观特点
FIFO进入缓冲区时间简单但不看最近访问
LRU最近一次访问时间利用时间局部性
改进算法访问、脏页和 I/O 成本更贴近实际负载
Takeaway

若 A、B、C 按顺序进入缓冲区,随后再次访问 A 并请求 D,FIFO 可能淘汰 A,LRU 可能淘汰 B;被修改的候选页要先完成日志稳定保存,再写回

6/12
EVICTION

物理组织要为四类信息安排存储结构

数据字典描述结构,数据文件保存内容,存取路径负责定位

信息例子作用
数据描述数据字典/系统目录解释外模式、模式和内模式
数据本身元组、页面、数据文件保存业务内容
数据联系表关联、指针或邻接关系表达实体联系
存取路径索引、哈希、顺序组织支持定位、扫描和访问
Takeaway

数据字典保存描述,数据文件保存业务数据,存取路径帮助定位它们;四类内容都要采用合适的物理组织

7/12
PHYSICAL ORGANIZATION

文件组织方式要和访问模式匹配

堆文件、顺序文件、哈希文件和 B+ 树文件适合不同访问模式

组织方式主要特点适合的访问
堆文件记录通常无序存放,不维护全局顺序插入简单、无序扫描
顺序/索引顺序文件顺序文件按记录顺序组织,索引顺序文件增加定位信息顺序扫描、批处理、范围访问
哈希文件用哈希函数把键映射到桶等值点查询
B+ 树文件(有序索引)多级有序结构,叶结点支持顺序访问等值、范围和有序访问
8/12
FILE ORGANIZATION

索引路径的建立、选择与维护

用户只面对逻辑表,系统在已有路径中选路并保持索引一致

建立与删除路径

用户或管理员通过 CREATE INDEXDROP INDEX 改变可用的存取路径集合

查询选路

查询优化器只在已有索引路径、顺序扫描等候选方案中选择执行方案

同步维护路径

更新索引键时同步修改相关索引项,更新非索引属性时通常不改变该索引项

Takeaway

逻辑表与独立索引路径分离,用户无需知道物理布局;建立、选择和维护由不同系统职责完成

9/12
RELATIONS AND PATHS

本节回顾

记录请求经页面访问,由文件组织与索引完成物理定位

一次读取

READBUF 命中直接返回,未命中准备页面并调用 READ

一次淘汰

选择可释放候选页,选中已修改页时先写回

一次物理定位

数据文件保存数据,索引提供路径,逻辑表不暴露物理布局

Takeaway

未缓存的 SC 成绩记录读取依次经过缓冲区、文件组织、索引路径和外存 I/O

10/12
RECAP

本节知识地图

11/12
KNOWLEDGE MAP

本节问题

  1. 01缓冲区如何兼顾设备独立与访问效率?
  2. 02SC 未缓存时,READBUF、申请缓冲页、淘汰、OS READ 的顺序是什么?
  3. 03可释放标志如何影响淘汰资格?WAL 为何要求日志先于修改页写回?
  4. 04访问 A 后请求 D,FIFO 和 LRU 各可能淘汰谁?
  5. 05数据字典、元组文件、联系、索引各属哪类物理信息?
  6. 06CREATE INDEX、优化、维护各做什么?用户 SQL 为何不变?
12/12
CHECK YOUR UNDERSTANDING