- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                尚辅网 尚辅网 第6章  数据库的控制技术 事务 数据库并发控制概述 基于封锁的并发控制 故障种类 数据库恢复技术 数据库恢复策略 事务 事务概念 事务特性 事务概念 事务是数据库的逻辑工作单位,是用户定义的一个操作序列。 这些操作要么都运行,要么都不运行,是一个不可分割的工作单位。 在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或一个程序。 通常情况下,一个程序包含多个事务。 事务特性 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability) 数据库并发控制概述 并发操作带来的数据不一致性 并发操作的调度 并发操作带来的数据不一致性 丢失修改 指事务T1和事务T2从数据库中读入同一数据进行修改,T2写入数据库的结果将T1先写入数据库的结果覆盖,导致事务T1对数据库的修改丢失。 读“脏”数据 指事务T4读取T3修改后的数据进行运算,但T3未能成功提交,从而导致T4运算的数据为“脏”数据。 并发操作带来的数据不一致性 不可重复读 指事务T5读取数据后,事务T6对其执行更新操作,导致T5无法再验证前一次读取的结果。	 以上数据不一致性都是因为事务之间发生了干扰,破坏了事务的隔离性。 并发控制就是要用正确的方式调度并发操作,使一个事务的运行不受其他事务的干扰。 并发操作的调度 如果一个事务运行过程中没有其他事务在同时运行,即没有受到其他事务的干扰,则认为该事务的运行结果是正确的。 因此总结出多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行这些事务时的结果相同,称这种调度策略为可串行化调度。 可串行化是并发事务正确调度的准则。 基于封锁的并发控制 封锁 三级封锁协议 两段锁协议 活锁和死锁 封锁 封锁指事务T在对某个数据对象(表、记录等)操作之前,先向系统发出请求,对其加锁。 加锁后事务T对该数据对象有一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。  封锁类型 X锁:若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他一切事务都不能再对A加任何锁,直到T释放A上的X锁。这就保证其他事务在T释放A上的锁之前不能再读取和修改A。 S锁:若事务T对数据A加上S锁,则其他事务对A的X锁请求不能成功,而对A的S锁请求可以得到。这就保证其他事务在T释放S锁前可读取A但不能修改A。 三级封锁协议 一级封锁协议 内容是:事务T在修改数据之前先对其加X锁,直到事务结束才释放,事务结束包括以COMMIT结束或以ROLLBACK结束。 一级封锁协议可防止丢失修改,并保证事务T是可恢复的。  三级封锁协议 二级封锁协议 内容是:一级封锁协议加上事务T在读取数据之前必须先对其加S锁,读完后即可释放S锁。 二级封锁协议除了能防止丢失修改,还可以防止读“脏”数据。  三级封锁协议 三级封锁协议 内容是:一级封锁协议加上事务T在读取数据之前必须先对其加S锁,直到事务结束才释放。 三级封锁协议除了能防止丢失修改和读“脏”数据外,还进一步防止了不可重复读。  三级封锁协议 两段锁协议 可串行化是并行调度正确性的惟一准则,两端锁协议保证并行调度可串行化。 两段锁协议指所有事务必须分两个阶段对数据加锁和解锁。第一阶段是对数据加锁,第二阶段是释放封锁。 在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁; 在释放一个封锁之后,事务不再获得任何其他封锁。 活锁和死锁 活锁:如果事务T1封锁了数据A,事务T2又请求封锁A,于是T2等待。 T3也请求封锁A,当T1释放了A上的封锁之后系统首先批准T3的请求,T2仍然等待。 然后T4又请求封锁A,当T3释放了A上的封锁之后系统又批准了T4的请求……T2有可能永远等待,这就是活锁的情形。 避免活锁的简单方法 是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对这些事务排队,该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁。 死锁 死锁:如果事务T1封锁了数据A,T2封锁了数据B,之后T1又请求封锁B,因T2已封锁了B,于是T1等待T2释放B上的锁。 接着T2又申请封锁A,因T1已封锁了A,T2也只能等待T1释放A上的锁。 这样就出现了T1等待T2,而T2又等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。 解决死锁问题主要方法 主要有两类方法: 一类方法是采取一定措施来预防死锁的方法; 另一类方法是允许发生死锁,采用一定手段定期诊断系统中有无死锁,若有则解除。 死锁的预防 一次封锁法 一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。 顺序封锁法 顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。 
                您可能关注的文档
- 数据库原理及应用 第1章数据库系统概述.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第1章 数据库概述.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第2章 数据库系统结构.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第3章 SQL 语言基础及数据定义功能.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第4章 数据操作.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第5章 视图和索引.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第6章 关系数据理论.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第7章 数据库设计.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第8章 事务与并发控制.ppt
 - 数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第9章 数据库编程.ppt
 
- 数据库原理及应用课件 第7章管理信息系统.ppt
 - 数据库原理及应用课件 第8章数据库新技术介绍.ppt
 - 数据库原理及应用刘玉宝电子教案 第1章数据库系统概述.ppt
 - 数据库原理及应用刘玉宝电子教案 第2章 关系数据库系统理论基础.ppt
 - 数据库原理及应用刘玉宝电子教案 第3章sql server 2000的使用.ppt
 - 数据库原理及应用刘玉宝电子教案 第4章数据库安全及维护.ppt
 - 数据库原理及应用刘玉宝电子教案 第5章数据库设计.ppt
 - 数据库原理及应用刘玉宝电子教案 第6章 数据库访问技术介绍.ppt
 - 数据库原理及应用刘玉宝电子教案 第7章使用C#和ADONET操作数据库.ppt
 - 数据库原理及应用刘玉宝电子教案 第8章使用C#开发Windows数据库应用程序.ppt
 
最近下载
- 高二化学选择性必修三知识点 .pdf
 - 图形创意(第二版)林家阳 高教 全套课件.pdf VIP
 - 社区网格员安全培训课件.ppt VIP
 - 浅谈水体富营养化治理的国内外研究现状.pdf VIP
 - 公共管理研究方法(浙大)大学MOOC慕课 客观题答案.docx VIP
 - “十五五”档案战略规划与发展方向.docx VIP
 - 《创新创业基础——理论、案例与训练》 第七章 选择商业模式.pptx VIP
 - 国际快递实务 出境快件的检验检疫 PPT-海关快件监管流程.pptx VIP
 - 《老年人心理护理》精品课件——项目二 老年人认知变化及其应对.pptx
 - 一种硫化镉-硫铟锌异质结纳米棒阵列复合材料及其制备方法.pdf VIP
 
原创力文档
                        

文档评论(0)