当前课程知识点:高级数据库系统 >  第六讲 并发控制的其它机制 >  2. 基于有效性检验的调度 >  6-2. 基于时间戳的调度

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

6-2. 基于时间戳的调度在线视频

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

下一节:html

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

6-2. 基于时间戳的调度课程教案、知识点、字幕

基于时间戳的协议是一种预防性的策略

下面我们来介绍一种基于有效性检验的调度协议

这个协议是以诊治型的

它协议的基本内容我们看PPT如下

它主要是讲事务的生命周期分为三个阶段

读阶段、有效性检查阶段和写阶段

读阶段,它是读数据并且把数据保存在局部变量当中

我们前面讲过事务的增值空间

以后对于这个数据的更新都在局部变量上进行,这就是读

有效性检查呢,是指数据在局部变量上已经更新了

那么现在我需要把它复制到数据库里面去

现在我复制的话,就意味着我修改了数据库

所以我就要继续判断是否可以把变量更新到数据库里面去

我的这种更新肯定不能违反可串行性

也就是必须要保证可串行性的执行

实际上就是我的这种更新必须不能违反我的业务逻辑,也不能造成数据的错误

也就是说,实际上这种有效性检查就保证了并发调度的可串行化

那么这是有效性检查,然后第三个阶段就是写阶段

写阶段就是事务一旦通过了有效性检查

也就是说,你写吧,它这种写更新了数据库,不违反可串行化

那我就可以直接去写了,更新数据库

在这个协议的框架里面,每一个事务都必须要这三个阶段

而且这三个阶段必须是顺序执行的

那么就算这个事务只是读数据的话

那它也必须有读和有效性检查,哪怕它没有写,也必须是这样

使用这个协议我们必须要关注一下几个标志点

一个是事务的开始执行时间,我们用Start(T)来表示

再有一个就是有效性检查的完成时间,我什么时候完成有效性检查

完成了有效性检查,我就可以进行事务的写

接下来就是写阶段的完成时间,什么时候写完,叫Finish(T)

有效性检查的时间叫Validation(T)

接下来还有几个集合,一个是RS(T),我们表示的是读数据项的集合

WS(T)表示的是写数据项的集合

也就是事务写数据,写的数据项的集合

那么有了这几个,我们就看

实际上对事务最重要的是有效性检查

读都无所谓,先读后读都没有什么关系

但实际上在写之前一定要做一个有效性检查,准许你进行写

所以有效性检查的完成时间是非常重要的

有效性检查完成协议里面实际上它也采用了类似于时间戳的一种概念

它把有效性检查的时间作为事务的一个时间戳

然后按照这样一个时间戳来决定事务的可串行化顺序

它是这样的一种原理

所以这个时候我们给事务定时间戳也就是T的这个TS(T)

实际上等于有效性检查的时间戳,那么有了这样一些标志

那么如果我们说确认事务有效性的时候可能发生的错误是什么呢

只有两种情况,一种情况是如图所示

我有一个事务,已经进行了确认

或者是说它现在正在写的过程当中还没有写完

在它写的过程中,突然有一个新的事务要开始

而且这个事务可能它要读数据,它要读这个数据

它要读的这个数据正好是刚才这个事务它要写的数据

比如说现在有一个事务U,它现在已经经过了确认而且正在写这个X

但是在它写完之前,有一个事务T启动起来,它要读X

只有在这种情况下才会发生错误

那么另外一种情况,可能有一个事务U

它现在正在确认当中,它正在确认的时候,它还没有确认完

其实有一个新的事务,它执行的比较快

它在U还没有确认完的时候它开始确认

而且它确认的比较快,比U快,马上去写X

就说在这种情况下才有可能会发生错误

那么如果说,我们在这个有效性协议里面如果把这两种情况都排除的话

那显然我们就能够保证事务的串行化

这样人们就提出了一种有效性检验规则

这个检验规则就是说,对于经过有效性确认

并且在某一个事务T开始前还没有完成的事务Ti

如果它满足这样的一些条件,比如说

Ti的完成时间如果比T的开始时间要早

也就是说Ti在T开始之前就已经完成了

或者说,它们两个Ti和T的读数据和写数据两个根本没有交集

那么在这种情况下,我们Ti和T是可串行化的

也就是说如果我们是满足这样的一种条件

那么或者Ti的写数据和T的读数据、写数据之间也没有交集

或者是Ti它的有效性检查时间比T的有效性检查完成时间要早

如果是这种情况,那么Ti和Tj也是可串行化的

我们就说,我们判断两事务是不是可以这样执行

根据这样一种有效性规则去检验就可以了

这样我们根据这样的规则,比如说对我们前面举的例子T1和T2

如果我们给它这样去设置,比如说沿着时间轴从上到下

比如我先对T2进行有效性检查,然后再对T1进行有效性检查

这个过程我们就可以保证两个事务的可串行化

到此为止,我们关于有效性检查的机制和基于时间戳的机制

给大家就介绍这么多,加上前面的封锁机制

目前数据库管理系统有的传统的还在使用的基于封锁的机制

像Arokl已经引入了时间戳的这样一种机制

实际上在真正的数据库应用系统里面

因为面对不同的应用,它的种类非常多

有的应用对于数据的错误的容忍性比较低

有的对于它的容忍性比较高,希望事务的并发程度越高越好

这样的话,事务管理系统为了适应这样多种类型的应用

它的隔离性级别也设置了很多

最高的隔离性级别采用封锁机制,事务在执行的过程当中要求严格的可串行化

有的时候比如说事务出点错误,运行当中事务出点错误也没什么问题

那么我们就可以把的可串行化要求降低,并行程度提高

比如说,可以允许不重复读的也可以的话,我们可以放松对这样区别的要求

所以数据库的隔离级别一般都要分成4类

这4类大家可以去看一下,像SQL server也有它明确的要求

这个在数据库管理系统里面有专门的工具可以去进行设置

可以去测验一下,测试一下

到此为止,这一章我们就讲完了

大家重要掌握的就是基于时间戳这样一种有效性检查机制

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

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

-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.练习--作业

高级数据库技术期末试题

-试题--作业

6-2. 基于时间戳的调度笔记与讨论

也许你还感兴趣的课程:

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