数据库课件:第7讲 数据库的并发控制与恢复技术.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库课件:第7讲 数据库的并发控制与恢复技术.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库课件:第7讲 数据库的并发控制与恢复技术 数据库 课件 并发 控制 恢复 技术
- 资源描述:
-
1、1第第7讲讲 数据库的并发控制与恢复技术数据库的并发控制与恢复技术思考以下问题思考以下问题: 1. 多用户同时访问(并发操作)数据多用户同时访问(并发操作)数据库会产生什么问题?库会产生什么问题? 2. 如何进行并发控制?并发控制又会如何进行并发控制?并发控制又会带来什么新问题?如何解决?带来什么新问题?如何解决? 3. 数据库系统可能出现的故障有哪些?数据库系统可能出现的故障有哪些?数据库的恢复技术又有哪些?数据库的恢复技术又有哪些?2一一. 并发操作产生的问题并发操作产生的问题丢失修改丢失修改 两个事务两个事务T1和和T2读入同一数据并进行读入同一数据并进行修改,修改,T2提交的结果破坏了
2、提交的结果破坏了T1提交的提交的结果,导致结果,导致T1的修改被丢失。的修改被丢失。事务是用户定义的一个数据库操作序事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,列,这些操作要么全做要么全不做,是一个不可分割的工作单位。是一个不可分割的工作单位。3一一. 并发操作产生的问题并发操作产生的问题不可重复读不可重复读 事务事务T1读取数据后,事务读取数据后,事务T2执行更新执行更新操作,使操作,使T1无法再现前一次读取结果。无法再现前一次读取结果。读读“脏脏”数据数据 事务事务T1修改某一数据,并将其写回磁盘,修改某一数据,并将其写回磁盘,事务事务T2读取同一数据后,读取同一数据后
3、,T1由于某种由于某种原因被撤销,原因被撤销,T2读到的数据就与数据库读到的数据就与数据库中的数据不一致,则中的数据不一致,则T2读到的数据就为读到的数据就为脏数据,也就是说不正确的数据。脏数据,也就是说不正确的数据。4T1T2T1T2T1T21) 读读A=20 1) 读读A=50 读读B=100求和求和=150 1) 读读C=100CC*2写回写回C 2) 读读A=203) AA-1写回写回A=19 2) 读读B=100BB*2写回写回B=2002) 读读C=2004)AA-1写回写回A=19(A少减一少减一次次)3) 读读A=50 读读B=200 和和=250(验算不对验算不对) 3) R
4、OLLBACKC恢复为恢复为100(错误的错误的C值已读出值已读出) (a)丢失修改丢失修改 (b)不可重复读不可重复读 (c)读读“脏脏”数据数据 5一一. 并发操作产生的问题并发操作产生的问题事务的特征(事务的特征(ACID)原子性(原子性(Atomicity)一致性(一致性(Consistency)隔离性(隔离性(Isolation)持续性或永久性(持续性或永久性(Durability)事务特性遭破坏的原因事务特性遭破坏的原因 多个事务并行执行时,不同事务的多个事务并行执行时,不同事务的操作交叉执行操作交叉执行 事务在运行过程中被强行停止事务在运行过程中被强行停止6一一. 并发操作产生的
5、问题并发操作产生的问题在在SQL语言中,定义事务的语句有语言中,定义事务的语句有三条:三条: BEGIN TRANSACTION; COMMIT; ROLLBACK TRANSACTION ;7二二. 数据库的并发控制数据库的并发控制数据库的并发控制就是控制数据库,防数据库的并发控制就是控制数据库,防止多用户并发使用数据库时造成数据错止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。误和程序运行错误,保证数据的完整性。 封锁机制是并发控制的重要手段。封锁封锁机制是并发控制的重要手段。封锁是使事务对它要操作的数据有一定的控是使事务对它要操作的数据有一定的控制能力。制能力。8二
6、二. 数据库的并发控制数据库的并发控制 封锁具有封锁具有3个环节个环节 申请加锁,即事务在操作前要对它申请加锁,即事务在操作前要对它将使用的数据提出加锁请求;将使用的数据提出加锁请求; 获得锁,即当条件成熟时,系统允获得锁,即当条件成熟时,系统允许事务对数据加锁,从而事务获得许事务对数据加锁,从而事务获得数据的控制权;数据的控制权; 释放锁,即完成操作后事务放弃数释放锁,即完成操作后事务放弃数据的控制权。据的控制权。9二二. 数据库的并发控制数据库的并发控制 锁的类型锁的类型 排它锁(排它锁(Exclusive Locks,简称,简称X锁),锁),也称为独占锁或写锁。一旦事务也称为独占锁或写锁
7、。一旦事务T对数对数据对象据对象A加上排它锁(加上排它锁(X锁),则只允许锁),则只允许T读取和修改读取和修改A,其他任何事务既不能读,其他任何事务既不能读取和修改取和修改A,也不能再对,也不能再对A加任何类型的加任何类型的锁,直到锁,直到T释放释放A上的锁为止。上的锁为止。 共享锁(共享锁(Share Locks,简称,简称S锁),又锁),又称读锁。如果事务称读锁。如果事务T对数据对象对数据对象A加上共加上共享锁(享锁(S锁),其他事务只能再对锁),其他事务只能再对A加加S锁,不能加锁,不能加X锁,直到事务锁,直到事务T释放释放A上的上的S锁为止。锁为止。10二二. 数据库的并发控制数据库的
8、并发控制 封锁协议封锁协议 在对数据对象加锁时,需要约定一些在对数据对象加锁时,需要约定一些规则,例如,何时申请规则,例如,何时申请X锁或锁或S锁、持锁、持锁时间、何时释放等,这些规则称为锁时间、何时释放等,这些规则称为封锁协议。封锁协议。11二二. 数据库的并发控制数据库的并发控制 一级封锁协议一级封锁协议 事务事务T在修改数据之前必须先对其加在修改数据之前必须先对其加X锁,直到事务结束才释放。锁,直到事务结束才释放。 作用:可有效地防止丢失修改,但不能作用:可有效地防止丢失修改,但不能保证可重复读和不读保证可重复读和不读“脏脏”数据。数据。 12事务事务1时间时间事务事务2读读A16t1t
9、2读读A16AA1写回写回A=15t3t4A=A-1写回写回A15事务事务1时间时间事务事务2XLOCK A读读A16t1t2XLOCK A等待等待AA1写回写回A=15COMMITUNLOCK At3t4XLOCK A读读A15AA1写回写回A14COMMITUNLOCK A举例:举例:13二二. 数据库的并发控制数据库的并发控制 二级封锁协议二级封锁协议 事务事务T对要修改数据必须先加对要修改数据必须先加X锁,直锁,直到事务结束才释放到事务结束才释放X锁;锁; 对要读取的数据必须先加对要读取的数据必须先加S锁,读完后锁,读完后即可释放即可释放S锁。锁。 作用:不仅能够防止丢失修改,而且防作
展开阅读全文