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

DBMS 功能、层次结构与运行过程

从一条 SELECT 看见 DBMS 各层如何协作

VER. 2608.3 Built with impress.js

学习目标

完成本节后,你应该能够

  1. 01列举 DBMS 的六类基本功能,并说明其运行目标
  2. 02区分应用层、语言处理层、数据存取层、数据存储层与操作系统的职责边界
  3. 03把一次带条件的 SELECT 映射到对应层次及接口
  4. 04说明数据字典如何支撑语义检查、权限检查、优化和物理定位
  5. 05区分集合请求、单记录操作、页面/缓冲区操作和物理文件块读写
  6. 06用分层接口解释物理/设备独立性与可维护性
2/12
LEARNING OBJECTIVES

DBMS 的六类工作

六类功能共同保障共享数据的可用性、正确性和可维护性

DBMS 围绕共享数据提供定义、存取、运行管理与互操作能力

定义与创建

组织与存储

数据存取

事务与运行

建立与维护

互操作与新型数据

Takeaway

六类功能共同支撑 DBMS 对共享数据的管理

3/12
DBMS FUNCTIONS

DBMS 由应用、操作系统和内部三层组成

应用层发请求,操作系统供物理 I/O;DBMS 内部三层靠接口协作

位置/层次处理对象关键职责
应用层(外部接口)请求和事务接收用户及程序调用
DBMS:语言处理层SQL、关系和视图解析、检查、优化和生成调用
DBMS:数据存取层单个元组与逻辑存取路径查找、更新、封锁和日志
DBMS:数据存储层数据页和系统缓冲区页面读写、缓冲和外存交换
操作系统(物理 I/O 基础)物理文件块提供文件与设备读写原语
Takeaway

应用不必知道页面、文件和设备细节;更换索引或文件布局时,上层 SQL 接口通常可以保持不变

4/12
LAYERED STRUCTURE

数据字典连接语义检查、优化与物理定位

数据字典也称系统目录,为语言处理、数据存取和运行管理提供元数据

Takeaway

对象不存在时语义检查失败;用户没有权限时拒绝执行;统计信息和存取路径帮助优化器选择计划并定位数据

5/12
DATA DICTIONARY

SELECT 的一次 DBMS 运行链路

案例:SELECT Sno, Cno, Grade FROM SC WHERE Sno = '20180003'

一次 SELECT 沿应用层、DBMS 三层调用操作系统完成读取并返回
Takeaway

应用发出请求,DBMS 分层处理,操作系统读取数据页,最后返回结果

6/12
QUERY RUNTIME

SELECT 的五步执行路径

同一请求从应用经 DBMS 到操作系统,再返回结果

  1. 01应用层发送带关系名和条件的 SELECT
  2. 02语言处理层依据数据字典检查语法、语义和权限
  3. 03优化器依据统计信息和存取路径生成执行计划
  4. 04数据存取层把集合计划落实为单个元组的访问动作
  5. 05数据存储层先查系统缓冲区;命中则直接取记录,未命中才由操作系统读取数据页,DBMS 最后返回记录和执行状态
7/12
QUERY RUNTIME

SELECT 与更新语句需要的检查不同

SELECT 先检查语法、语义和权限;写操作还要检查状态变化是否保持完整性

检查适用语句依据/问题失败结果
语法SELECT/DML语句结构是否正确解析错误
语义SELECT/DML表、属性和类型是否存在名称或类型错误
权限SELECT/DML用户能否访问对象拒绝执行
完整性(写操作)INSERTUPDATEDELETE约束、触发器和当前状态是否允许变化拒绝、错误或回滚
8/12
QUERY CHECKS

集合请求和物理操作处在不同尺度

应用表达需要哪些记录,DBMS 决定从哪里以及按什么路径读取

Takeaway

逻辑存取路径是定位方式,不是独立的物理层次;文件组织或索引改变时,上层 SQL 通常不必改变

9/12
SCALE OF OBJECTS

本节回顾

DBMS 通过层次接口组织多类管理功能

功能

定义与创建、组织存储、数据存取、事务运行、建立维护和互操作

层次

应用接口、DBMS 内部三层、操作系统物理 I/O 基础

运行

字典检查、计划生成、单记录访问、缓冲区读取和结果返回组成查询运行链路

Takeaway

数据字典连接检查、优化和物理定位;稳定接口让应用不必依赖物理存储路径

10/12
RECAP

本节知识地图

11/12
KNOWLEDGE MAP

本节问题

  1. 01建表、索引、权限、恢复、性能监视分别属于哪些 DBMS 功能?
  2. 02给定学生成绩 SELECT,应用层、语言处理层、数据存取层、数据存储层、操作系统各做什么?
  3. 03数据字典怎样支持名称、权限、优化和物理定位检查?
  4. 04关系或属性不存在、用户无权限时分别在哪一步失败?为什么尚未物理读盘?
  5. 05SELECTUPDATE 的检查有什么区别?文件组织或索引变化而 SQL 不变体现什么独立性?
12/12
CHECK YOUR UNDERSTANDING