第十一章]并发控制
概述
- 事务是并发控制的基本单位
- 要保证数据的隔离性和一致性
数据不一致性
- 丢失数据
- 两个事务同时读改,T2的提交覆盖了T1所读的数
- 不可重复读
- T1读后T2改,看似正常,T1所读的数其实已经覆盖
- 读”脏”数据
- T1修改后,T2读,T1撤销后,T2所读被修改
主要技术
- 封锁
- 时间戳
- 乐观控制法
- 多版本并发控制
封锁
封锁就是事务T在对某个数据对象记录操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象。
排他锁
其他任何事务不能读写和加锁
- 写锁
- X锁
共享锁
其他事务不能写,可以读,和加共享锁
- 读锁
- S锁
封锁协议
一级封锁协议
事务T在修改R之前,加X锁,直到事务结束为止
- 实现修改丢失
二级封锁协议
在一级封锁基础上,事务T在读取R之前,加S锁,直到读取完成
- 实现读出‘脏’数据
三级封锁协议
在二级封锁基础上,事务T在读取R之前,加S锁,直到事务结束为止
- 实现不可重复读
死锁和活锁
活锁
一个事务永远等待另一个事务
- 先来先服务策略
死锁
A等B,B又等A,永不止
- 一次封锁法
- 顺序封锁法
两段锁协议
所有事物必须分为两个阶段对数据项加锁和封锁
- 在对任何数据进行读、写操作前,首先要申请获得对该数据的封锁
- 释放一个封锁后,事务部在申请和获得其他任何封锁
Prev
实验
Next
第十章]数据库恢复技术
Loading...