【高级数据库】第一章 DBMS系统概述
上一讲主要介绍数据库、数据库管理系统、数据仓库等的基本概念。本节详细讲解数据库管理系统的原理。
第02讲 DBMS概述
DBMS又称数据库管理系统,主要是对数据库进行管理,提供用户(应用程序)执行数据操作,提供数据库管理员进行关系模式的定义。因此DBMS主要由两个不同的命令来源,分别是用户(应用程序)和数据库管理员(DBA)
DBMS的系统架构如图所示:
数据定义命令主要由用户(应用程序)和DBA两个来源。对于DBA来说(图中右上角),主要是对数据库关系模式以及权限进行管理。例如对数据表格式、字段的约束条件、表之间的关联等进行预先定义,并且可以进行修改等操作。而用户(图中左上角)则是在已定义的关系模式基础上进行数据的增删改查等操作。可知绝大多数交互是沿着左侧路径进行。
用户或应用程序使用数据操纵语言(DML)启动某个活动,该活动不影响数据库模式,但可能影响数据库内容,或者从数据中抽取数据。
用户或应用程序发送的数据操纵请求主要分为两个部分:
(1)查询。由查询编译器对查询请求进行分析和优化,生成查询计划传给执行引擎。执行引擎向资源管理器发出请求,资源管理器中包含有关数据文件的格式、记录,和索引等。执行引擎将查询的请求传给缓冲区管理器,其可以从磁盘内的数据取出到主存缓冲区中。缓冲区管理器与存储管理器进行通信完成数据获取。
(2)事务。事物是一系列的增删改查命令的集合。用户或应用程序发出事务命令后,由事务管理器接受进行分析,并通过日志管理器和并发控制管理器进行操作。其中:
1. 并发控制管理器负责保证事务的原子性和孤立性;
2. 日志和恢复管理器负责事务的持久性。
相关知识
(1) DBMS中的主存与缓冲区管理器
数据库中的数据通常驻存在辅助管理器中(磁盘),执行一系列的操作则需要在主存上。DBMS中的存储管理器即控制数据在磁盘上的放置和在磁盘与主存之间的移动,更细的讲,存储管理器跟踪文件在磁盘上的位置并获得缓冲区管理器所要求的的文件的磁盘块号。
缓冲区管理器则负责对主存进行划分,并将磁盘中的数据传送到每个分区。
(2)什么是事物处理?
通常将一个或多个数据库操作的组合成为事务。事务是一系列数据库操作的命令集合。事务必须作为一个原子,要么全部执行,要么全部不执行,且在表面上是一个独立的执行单位。事务处理器主要包括:
1. 日志记录。日志管理器可以保证系统发生故障或崩溃时,通过恢复管理器查看数据库变化日志并可以恢复到任意时刻的状态。日志保证了事务的持久性。
2. 并发控制。多个事务可以并发执行。
3. 死锁解决。当事务之间由于缺少必要资源和均处于停滞阶段,即发生死锁,事务管理器需要检测到死锁状态并进行干预。
(3)事务的ACID性质是什么?
“A”指原子性:事务内的所有操作要么全部执行,要么全部终止。当整个事务在执行一半时发生错误,需要事务管理器对已执行的操作进行回滚。
“C”指一致性:保证数据库之间的约束是一致的。
“I”指孤立性:事务是可以并发执行的,但对于用户层面来讲,每个事务执行又是相互独立的。
“D”指持久性:通过日志和恢复管理器可以保证事务一旦执行后,影响记录是不会消失的。
(4)什么是查询处理器?
查询处理器主要包括两个部分:
1. 查询编译器:根据用户提出的查询命令,DBMS可将其翻译成查询计划,查询计划是在数据上执行的一系列操作。查询编译器主要由查询分析器、查询预处理器和查询优化器组成。
2、执行引擎:负责执行选中的查询计划中的每一步。
(5)相关术语
上一讲:数据库概述下一讲:数据库基础知识概览
博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。