当前课程知识点:高级数据库系统 >  第三讲 数据管理与恢复技术 >  2. 事务及日志的相关概念 >  3-2. 事务及日志的相关概念

返回《高级数据库系统》慕课在线视频课程列表

3-2. 事务及日志的相关概念在线视频

3-2. 事务及日志的相关概念

下一节:3-3. 基于undo日志的恢复机制

返回《高级数据库系统》慕课在线视频列表

3-2. 事务及日志的相关概念课程教案、知识点、字幕

一旦发生故障的话

日志数据就会被扫描,那么日志数据的扫描是谁来启动的呢

是由数据库管理系统的恢复管理器

恢复管理器来读出日志数据,然后呢,对日志进行扫描

然后基于恢复机制对数据库系统来进行恢复

那么这就是事务管理器的它的一个工作原理

那么这是它的宏观上的一个工作原理

我们要清楚整个日志的一个记录过程

首先呢我们需要知道用来记录日志的一些重要的事务原语是什么样的

这个事务原语跟数据从磁盘一直到内存,它的移动过程是非常相关的

我们用这张图来进行表示,也就说当我们数据库管理系统

比如说它要去修改一个数据的话

修改一个数据库里的某一个数据项的话,它首先肯定要去

它要通知缓冲区管理器,然后让缓冲区管理器去磁盘上读数据,读进来,是吧

读,它要直接读到缓冲区里面去

也就说缓冲区管理器会在缓冲区这个地方会开辟一个空间

来接纳从磁盘上读进来的这个数据

这个缓冲区里面读进来的数据是不能够为这个

我们说一个查询来使用的,那么查询实际上它是某一个事务给分配出来的

它目前实际上是CPU直接寻址的这样的一个空间

这个空间我们可以把它叫做事务的局部地址空间

那么事务是在这个,它提交的这个SQL语句

实际上它如果要是读数据的话,它会给它开辟一个变量

用这个变量来接收读入的数据

而这个数据应该是从缓冲区直接拿过来赋予给事务的局部地址空间里的一个变量

所以这样来说呢,整个事务,整个数据如果从磁盘到这个内存里面

它需要经过的空间大概是这样,进入磁盘

再到缓冲区,再到事务的局部地址空间,赋给相应的变量

所以这样的话,数据与数据库交互的三个地址空间

分别是磁盘空间,缓冲区管理器所管理的主存空间和事务的局部地址空间

那么这是我们刚才用这个读入数据,数据需要经过这样三个空间

那么实际上写数据也一样,也就说当一个事务要写一个SQL语句,是吧

比如说它用一个SQL语句它写数据到磁盘上去的话

它先要把这个数据从局部的事务地址空间移到缓冲区

再从缓冲区,通过缓冲区的一些命令,然后移到磁盘上

经过这样的一个过程,那么这样的话,我们就知道了

就说当一个数据进入缓冲区的时候

那么我们可以给它定义一个命令,比如说input

我们从磁盘到缓冲区用input

然后从缓冲区到事务的局部地址空间,我们用read

那么写正好相反,从这个事务的局部地址空间到这个缓冲区我们用write

然后呢,从缓冲区写到磁盘上我们用output

所以这样的话,就说,事务因为记录日志的一些重要的事务原语基本上就是

input,read,output和write这样几条原语

实际上就记录了数据的一个移动过程

我们可以举一个例子来说一下,比如说我们有一个事务

那么它需要对两个元素A和B进行操作

这个A和B可能是数据库里面的某一个数据项也可能是一个元组

我们就拿一个数据项来说,如果它的这个逻辑,事务逻辑比较简单

比如说它对数据项A进行一个乘法

对数据项B也进行一个乘法,乘2的这样的一个操作

然后呢,那么乘完了之后,相当于对数据进行了一个修改

然后我们把它写到磁盘上去,也就说对数据库进行一个更新

这样的一个事务,我们用这张表格,从上到下来看一下

那么整个,我们说这个数据它这个三个空间

有事务的局部地址空间,缓冲区空间和磁盘空间的变化情况

首先我们肯定要把这个A,比如说对A进行改变的话

那我们要把A先从磁盘读到内存上去

这个时候我们用inputA,那么这样的话呢

磁盘上这个A呢,实际上是8,是吧

那我们把它读进来,那就是内存上A变成了8

但是实际上事务的局部地址空间

这个地方我们用一个变量t来接收这个A的话,目前呢

局部地址空间实际上这个t还不是8,我们看

那么然后接下来呢

我们从缓冲区把这个8再读到事务的局部地址空间

也就说赋予给t,这个时候我们用read,这样的话呢

我们从内存就可以把内存里的A读入这个事务局部地址空间给t

我们看t就变成了8,是吧

然后回头来我们对这个8也就说这个A进行一个乘法操作,乘以2

那么这个A就变成了16,是吧

也就说在事务的局部地址空间接收A的一个变量t,目前已经变成了16

那么变成了16,但是实际上磁盘上,内存和磁盘的数据并没有发生变化

我们用write把这个t写回到内存上

我们就发现,写了write之后,内存里面的A变成了16

但磁盘上A仍然是8,我们再用什么呢outputA

那么用这样的一条语句的话

我们就可以把内存上的A直接写到磁盘上去

我们来看一下,用output之后,磁盘就变成了16

这样的话,B它的这个过程和A是完全一样的

那么通过这张表,我们就了解到一个事务在执行过程当中

数据的移动的变化是什么样子的

在这个里面呢,实际上起重要作用的是谁呢

是input和output,因为在这个内存里面

无论是事务局部地址空间还是储存空间,它都是内存

它毕竟跟磁盘还是有本质的一个区别

也就说我们实际上最关注的是磁盘的变化

所以对于磁盘变化最重要的实际上是output这个原语

所以后面呢,我们在写日志的时候,可能就要对它进行一个记录

这就是事务的概念,下面我们就说一下日志的概念

日志我们也不做过多的解释,大家都清楚了,是吧

就是我们创建一个数据库,一定要创建日志

日志它是记录我们对数据库所有的改变这样的一系列的一些数据

实际上相当于用户操作数据库的这样的一个改变结果这样一个的文档

那么它呢,日志呢,它不光指记录某一个客户对数据库的一些操作改变

它会记录并发所有客户对数据库的一些改变

所以我们可以想象一个日志,实际上它要比数据库本身要大的多

那么我们说日志一般来说它都记录哪些东西呢

下面就给出来,就是说日志,一般都要记录一个是事务的开始

另外是事务的成功或者是它的失败

那么再一个最重要的呢

就是我们要记录我们的操作对数据库更新的情况

那么这个更新情况呢,主要是指

比如说它记录某一个事务对数据库里面的哪一个数据项做了什么样的更新

然后它的更新的前的值是什么或者更新后的值是什么

那么再有一个,可能会还要记录一些比如说我们将来扫描日志的时候呢

我们扫描日志进行恢复,但是这个日志要扫描到什么程度

扫描到什么截止,所以呢,需要有一个标志,那就是检查点

所以这就是日志里面包含的一些元素

高级数据库系统课程列表:

第一讲 数据文件的组织与索引技术

-1. 数据文件的组织

--1-1 数据文件的组织

-2. 索引的概念与分类

--1-2 索引的概念与分类

-3. B+树索引

--1-3 B+树索引(1)

--1-3 B+树索引(2)

-4. 散列索引

--1-4 散列索引

-5. 小结

--html

-6.练习--作业

第二讲 查询处理及优化

-1. 查询代价的测量及查询处理过程概述

--2-1 查询代价的测量及查询处理过程概述

-2. 关系操作的基础算法

--2-2. 关系操作的基础算法(1)

--2-2. 关系操作的基础算法(2)

-3. 查询表达式的运算

--2-3 查询表达式的运算

-4.查询优化机制

--2-4 查询优化机制

-5.小结

--html

-6.练习--作业

第三讲 数据管理与恢复技术

-1. 数据库的故障及可恢复模型

--3-1. 数据库的故障及可恢复模型

-2. 事务及日志的相关概念

--3-2. 事务及日志的相关概念

-3. 基于undo日志的恢复机制

--3-3. 基于undo日志的恢复机制

-4. 基于redo日志的恢复机制

--3-4. 基于redo日志的恢复机制

-5. 小结

--html

-6. 练习--作业

第四讲 事务并发调度的相关概念

-1. 并发调度及相关概念

--4-1. 并发调度及相关概念

-2. 可串行化调度

--4-2. 可串行化调度

-3. 冲突可串行化调度

--4-3. 冲突可串行化调度

-4. 小结

--html

-5. 练习--作业

第五讲 基于封锁的并发控制机制

-1. 锁的概念及封锁的原理

--5-1. 锁的概念及封锁的原理

-2. 两阶段锁协议

--5-2. 两阶段锁协议

-3. 多粒度锁及意向锁

--5-3. 多粒度锁及意向锁

-4. 死锁的处理

--5-4. 死锁的处理

-5. 小结

--html

-6. 练习--作业

第六讲 并发控制的其它机制

-1. 基于时间戳的调度

--6-1. 基于有效性检验的调度

-2. 基于有效性检验的调度

--6-2. 基于时间戳的调度

-3. 小结

--html

-4. 练习--作业

第七讲 分布式数据库基本概念

-1. 分布式数据库系统的产生及定义

--7-1. 分布式数据库系统的产生及定义(1)

--7-1. 分布式数据库系统的产生及定义(2)

-2. 分布式数据库系统的模式结构与功能结构

--7-2. 分布式数据库系统的模式结构与功能结构

-3. 分布式数据库系统中存在的技术问题

--7-3. 分布式数据库系统中存在的技术问题

-4. 小结

--html

-5. 练习--作业

第八讲 分布式数据库的设计

-1. 分布式数据库的设计方法、内容和目标

--8-1. 分布式数据库的设计方法、内容和目标

-2. 自顶向下方法构建数据库

--8-2 . 自顶向下方法构建数据库

-3. 数据的分片和分布设计

--8-3. 数据的分片和分布设计(1)

--8-3. 数据的分片和分布设计(2)

-4. 分布式数据库设计案例讲解

--8-4. 分布式数据库设计案例讲解(1)

--8-4. 分布式数据库设计案例讲解(2)

--8-4. 分布式数据库设计案例讲解(3)

-5. 小结

--html

-6. 练习--作业

第九讲 分布式数据库查询机制

-1. 分布式查询处理的步骤和代价

--1. 分布式查询处理的步骤和代价

-2. 基于等价变换的查询优化

--2. 基于等价变换的查询优化

-3. 基于半连接算法的查询优化

--3. 基于半连接算法的查询优化

-4. 基于直接连接算法的查询优化

--4. 基于直接连接算法的查询优化

-5. 小结

--html

-6. 练习--作业

第十讲 分布式数据库的事务管理及恢复机制

-1. 分布式事务概述

--1. 分布式事务概述

-2. 分布式事务的两阶段提交协议

--2. 分布式事务的两阶段提交协议

-3.分布式并发控制概述

--3.分布式并发控制概述

-4. 并发控制的加锁机制

--4. 并发控制的加锁机制

-5. 并发控制的时标技术

--5. 并发控制的时标技术

-6. 小结

--html

-7.练习--作业

高级数据库技术期末试题

-试题--作业

3-2. 事务及日志的相关概念笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。