1
李宁
西北工业大学计算机学院
第十章并发控制
2
2
第九章内容回顾
本章重点
事务的概念和性质
事务故障、系统故障和介质故障的恢复技术与原理
Redo & Undo
本章难点
具有检查点的恢复技术
3
3
本章目录
并发控制概述
封锁
封锁协议
活锁和死锁
并发调度的可串行性
两段锁协议
封锁的粒度
小结
4
4
并发控制概述
多用户数据库系统
银行、票务系统等
多事务执行方式
事务串行执行
交叉并发方式(Interleaved Concurrency)
同时并发方式(simultaneous concurrency)
本章讨论的数据库
系统并发控制技术
是以单处理机系
统为基础的
5
5
并发控制概述
事务是并发控制的基本单位
并发控制的任务
对并发操作进行正确调度
保证事务的隔离性
保证数据库的一致性
6
6
并发控制概述
并发操作带来的数据不一致性
丢失修改(lost update)
- T2提交的结果覆盖了T1提交的结果
不可重复读(non-repeatable read)
- T1读,T2更新,T1再次读(与第一次读取数据不同)
该类错误中还包括:幻读(phantom row)
- T1读后,T2删除/插入部分记录,T1再读就不同
脏数据(dirty read)
- T1修改写回,T2读,T1回滚,此时T2读数据为脏数据
7
7
并发控制概述
丢失修改(lost update)
- T2提交的结果覆盖了T1提交的结果
8
8
并发控制概述
不可重复读(non-repeatable read)
- T1读,T2更新,T1再次读(与第一次读取数据不同)
T1读取B=100进行运算
T2读取同一数据B,对其进行修改后将B=200写回数据库
T1为了对读取值校对重读B,B已为200,与第一次读取值不一致
9
9
并发控制概述
幻读(phantom row)
- T1读后,T2删除/插入部分记录,T1再读就不同
10
10
并发控制概述
脏数据(dirty read)
- T1修改写回,T2读,T1回滚,此时T2读数据为脏数据
T1将C值修改为200, T2读到C为200
T1由于某种原因撤销,其修改作废, C恢复原值100
这时T2读到的C为200,与数据库内容不一致,就是“脏”数据
数据库事务课件 来自淘豆网m.daumloan.com转载请标明出处.