第8章并发控制.ppt.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章并发控制.ppt

数据库原理及应用 Principle and Application of Database 第八章 并发控制;学习目标;8.1 概述;时间;时间; 不可重复读包括三种情况: 事务T1读取某一数据后,事务T2对其做了修改,当T1再次读该数据时,得到与前一次不同的值。 事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录神密地消失了。 事务T1按一定条件从数据库中读取了某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。 后两种情况也称为幻影现象(Phantom Row)。;时间;8.2 封锁;8.3 封锁协议;一级封锁协议的并发调度;二级封锁协议的并发调度;三级封锁协议的并发调度;封锁协议小结;8.4 活锁与死锁;死锁:多个事务同时处于等待状态,每个事务都在等待其它事务释放锁使其能够继续执行,从而出现多个事务互相等待的僵局,每个事务永远不能结束。;顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。它也存在两个问题:一是数据库系统中可封锁的数据对象极多并且不断变化,要维护这些资源的封锁顺序非常困难;二是事务的封锁请求可以随着事务的执行而动态地决定,很难事先确定每一个事务要封锁哪些对象,也就很难按规定的顺序去施加封锁。如规定数据对象的封锁顺序为A,B,C,D,E。事务T3起初要求封锁数据对象B,C,E,但当它封锁了B,C后,才发现还需要封锁A,这样就破坏了封锁顺序。 因此DBMS解决死锁更普遍采用诊断+解除的方法。 死锁的诊断与解除 诊断:DBMS一般使用超时法或事务等待图法。 解除:死锁发生后DBMS选择处理代价最小的事务将其回滚,并释放它所持有的所有锁。;8.5 并发调度的可串行性;串行调度;可串行化调度与不可串行化调度;8.6 两段锁协议;遵守及不遵守2PL并发调度示例;时间;8.7 封锁的粒度;多粒度封锁系统中各种锁的相容性;8.8 SQL Server的并发控制技术; 如对仓库表施加共享锁,并且保持到事务结束时再释放封锁: SELECT * FROM 仓库 WITH (TABLOCK HOLDLOCK) 再如飞机订票系统采取更新锁最为合适。假设售票信息存放在表R(日期,班次,???号,状态)中,其中状态表明机票是滞售出,初值为NULL。程序段为: …… DECLARE @d datetime,@t char(6),@n char(10),@s char(2) …… //输入@d , @t ,@n BEGIN TRANSACTION SELECT @n=座号 FROM R WITH(UPDLOCK) WHERE 日期=@d AND 班次=@t AND 状态 IS NULL IF UPDATE R SET 状态=‘Y’ WHERE 座号=@n AND日期=@d AND 班次 COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION ……;SQL Server的隔离级别: 支持标准SQL中定义的4种隔离级别 未提交读(READ UNCOMMITED):事务隔离的最低级别,仅可保证不读物理损坏的数据。 提交读(READ COMMITED):SQL Server的默认级别,可以保证不读“脏”数据。 可重复读(REPEATABLE READ):可以保证读一致性。 可串行化(SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离,在该级别上可以保证并发事务均是可串行的。 事务必须运行在可重复读或更高隔离级别上才可防止丢失更新 设置隔离级别的命令是: SET TRANSACTION ISOLATION LEVEL {READ COMMITED | READ UNCOMMITED | REPEATABLE READ | SERIALIZABLE};小结;作业; 下课了。。。

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档