- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.3 并发控制 5.3.1并发带来的问题 并发执行二 如右图所示,T1和T2的操作穿插执行,结果是T1的修改操作没有起到应有的作用,这种现象称为“丢失修改”。 开始时Limit = 80 时刻 T1 T2 t1 W(A) t2 R(Limit=80) t3 W(A) t4 R(Limit=80) t5 W(Limit =79) t6 W(Limit=79) 结束时Limit=79 5.3 并发控制 5.3.1并发带来的问题 并发执行三:学生甲执行事务T1,但是在确认是否真正选修课程时,他放弃了选修,事务被回滚。具体的执行过程如右图所示,学生乙的选课操作也没有获得成功,原因是在T1没有结束时,就读了Limit,这种现象叫做“读脏数据”。 开始时Limit = 1 时刻 T1 T2 t1 W(A) t2 R(Limit=1) t3 W(A) t4 R(Limit=1) t5 W(Limit =0) t6 W(Limit=0) t7 RollBack 结束时Limit=0 5.3 并发控制 5.3.1并发带来的问题 并发执行四: T1在执行过程中读了两次Limit,但是发现Limit的两次余额不一样,由于不知道发生了什么情况而将T1撤消了。原因是在两个读操作中间执行了另外的事务T2,这种现象叫做“不可重复读”。 开始时Limit = 1 时刻 T1 T2 t1 W(A) t2 R(Limit=1) t3 W(Limit=0) t4 W(A) t5 R(Limit=0) t6 RollBack t7 RollBack 结束时Limit=1 5.3 并发控制 5.3.1并发带来的问题 [例3] 如图所示,T1和T2交叉执行,不是串行调度,但是结果确与串行执行事务的结果相同,因此,是一个可串行化调度,是正确的调度。 开始时Limit = 80 时刻 T1 T2 t1 W(A) t2 R(Limit=80) t3 W(A) t4 W(Limit=79) t5 R(Limit=79) t6 W(Limit =78) 结束时Limit=78 5.3 并发控制 5.3.2 封锁技术 (1)S锁和X锁 S锁又被称为共享锁(Share Locks),X锁又被叫做排它锁(eXclusive Locks)。 共享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其它事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 5.3 并发控制 5.3.2 封锁技术 排它锁又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其它事务在T释放A上的锁之前不能读取和修改A。 T2 T1 X S X N N Y S N Y Y Y Y Y 封锁类型的相容矩阵 Y=Yes,相容的请求 N=No,不相容的请求 5.3 并发控制 5.3.2 封锁技术 一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。一级封锁协议可防止丢失修改,并保证事务T是可恢复的,但它不能保证可重复读和不读“脏”数据。 5.3 并发控制 5.3.2 封锁技术 二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据,由于读完数据后即可释放S锁,所以它不能保证可重复读。 第5章 事务管理 5.1 事务的概念 5.2 恢复技术 5.3 并发控制 5.4 小结 5.1 事务的概念 在数据库环境中,事务是一个十分重要的概念。事务是由一系列的对数据库的查询操作和更新操作构成,这些操作是一个整体,不能分割,即要么所有的操作都顺利完成,要么一个操作也不要做,绝不能只完成了部分操作,而还有一些操作没有完成。 事务是数据库运行中的一个逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。 5.1 事务的概念 5.1.1事务的特性: (1)原子性(Atomicity) 一个事务中的所有操作,是一个逻辑上不可分割的单位。 (2)一致性(Consistency) 数据库处于一个一致性状态是指数据库中的数据满足各种完整性约束。 5.1 事务的概念 5.1.1事务的特性: (3)隔离性(Isolation) 隔离性的含义是指无论同时有多少事务在执行,DB
文档评论(0)