数据库系统实现(第二版)学习笔记——第1章 DBMS系统概述
数据库管理系统概述
完整的DBMS(数据库管理系统)的轮廓。
1.数据定义语言命令
数据定义语言(DDL),由DDL处理程序进行分析,然后传给执行引擎,又执行引擎经过索引/文件/记录管理器去改变元数据,即数据库的模式信息。
2.查询处理概述
数据操纵语言(DML),DML语句会被两个子系统处理:查询响应,事务处理。
查询响应:
由查询编译器对查询进行分析和优化。得到的查询计划被传给执行引擎,执行引擎向资源管理器发出一系列对小的数据单元(通常是记录或关系的元组(tuple))的请求,资源管理器掌握着数据文件以及索引文件。
查找数据的请求被传送给缓冲区管理器。缓冲区管理器的任务是从磁盘中将数据的适当部分取到主存的缓冲区中。
事务处理:
事务是组成一组的若干个查询和其他动作,是必须作为一个原子被孤立地执行的单位。任何一个查询或修改动作自身就可以是一个事务。另外,事务的执行必须是持久的。
事务处理器分为两个主要部分:
-
并发控制管理器或调度器,负责事务的原子性和孤立性。
-
日志和恢复管理器,负载事务的持久性。
3.主存和缓冲区管理器
数据库中的数据通常驻留在磁盘中,然而,数据必须在主存储器中,才能对其进行有用的操作。存储管理器的任务是控制数据在磁盘上的放置和在磁盘与主存之间的移动。
缓冲区管理器负责将可利用的主存空间分割成缓冲区,缓冲区是与页面同等大小的区域,磁盘块的内容可以传送到缓冲区中。这样,所有需要从磁盘得到信息的DBMS成分都或直接或通过执行引擎与缓冲区和缓冲区管理器交互。不同的DBMS成分所需要的信息类型包括:数据、元数据、日志记录、统计信息、索引。
4.事务处理
事务处理器从应用系统接收事务命令。事务处理器执行以下任务:日志记录、并发控制、死锁解决。
事务的ACID特性:原子性(A)、一致性©、孤立性(I)、持久性(D)。
5.查询处理器
图1-1中,查询处理器表示为两个成分:查询编译器和执行引擎。
查询编译器,它将查询翻译成一种内部形式,称作查询计划。通常查询计划中的操作是“关系代数”的实现。查询编译器包括三个主要部分:
-
查询分析器:由文本形式的查询出发,建立一个树结构。
-
查询预处理器:对查询进行语义检查,并进行某些树结构转换,将分析树转换为表示最初的查询计划的代数操作树。
-
查询优化器:将最初的查询计划转换为对于实际数据的最有效的操作序列。
执行引擎,它负责执行查询计划中的每一步。执行引擎与DBMS中大多数的其他成分都有交互。