第5章数据库保护之事务内容摘要:

调 度 2 事务调度 read(A)。 A := A  50。 write(A)。 read(B)。 B := B + temp。 write(B)。 T1 T2 A=950¥ B=2020¥ 结束状态: A=855¥ B=2145¥ A+B=3000¥ read(B)。 B := B + 50。 write(B)。 read(A)。 temp := A A := A  temp。 write(A)。 A=855¥ B=2020¥ A=855¥ B=2050¥ 并 行 调 度 3 事务调度  可恢复调度  事务的恢复 :一个事务失败了,应该能够撤消该事务对数据库的影响。 如果有其它事务读取了失败事务写入的数据,则该事务也应该撤消 read(A)。 write(A)。 T1 T2 read(B)。 rollback。 read(A)。 mit 不可恢复的调度 可恢复调度 对于每对事务 T1与 T2, 如果 T2读取了 T1所写的数据 ,则 T1必须先于 T2提交 事务调度  无级联调度 级联调度 由于一个事务故障而 导致一系列事务回滚 read(A)。 read(B)。 write(A)。 T1 T2 read(A) write(A)。 T3 read(A) rollback。 无级联调度 对于每对事务 T1与 T2,如果 T2读取了 T1所写的数据 , 则 T1必须在T2读取之前提交 无级联调度必是可恢复调度 事务隔离性级别 :丢失修改 read(A)。 A := A  50。 B := B + temp。 write(B)。 T1 T2 A=1000¥ B=2020¥ 结束状态: A=950¥ B=2100¥ A+B=3050¥ write(A)。 read(B)。 B := B + 50。 write(B)。 read(A)。 temp := A A := A  temp。 write(A)。 read(B)。 A=900¥ B=2020¥ A=950¥ B=2020¥ A=950¥ B=2050¥ 并 行 调 度 4 两个事务T1和 T2读入同一数据并修改 ,T2提交的结果破坏了 T1提交的结果 ,导致 T1 的修改丢失 事务隔离性级别 :读脏数据 read(A)。 A1 := A。 read(B)。 B1 := B。 A1 + B1 = 2950。 read(B)。 B := B + 50。 write(B)。 T1 T2 A=1000¥ B=2020¥ read(A)。 A := A  50。 write(A)。 并 行 调 度 5 事务 T1修改某一数据 , 并将其写回磁盘 , 事务 T2读取同一数据后 , T1由于某种原因被撤消 ,这时 T1已修改过的数据恢复原值 , T2读到的数据与数据库中数据不一致 ,则 T2读到的数据就是脏数据 事务隔离性级别 :不能重复读 read(A)。 A1 := A T1 T2 A=1000¥ B=2020¥ read(A)。 A := A  50。 write(A)。 read(B)。 B := B + 50。 write(B)。 read(B)。 B1 := B A1+B1=3050 A=950¥ B=2050¥ 并 行 调 度 6 事务 T1读取某一数据后 , 事务 T2对其做了修改 , 当 T1再次读取该数据时 , 得到与前次不同的值 事务隔离性级别 :发生幻象 select * from SC where CNO = C01 and SNO = S01 T1 T2 发 生 幻 象 insert into SC values(S01, C01, null) 事务隔离性级别  SQL中 隔离性 级别的定义  serializable: 一个调度的执行必须等价于一个串行调度的结果  repeatable read: 只允许读取已提交的记录 , 并要求一个事务对同一记录的两次读取之间 , 其它事务不能对该记录进行更新  read mitted: 只允许读取已提交的记录 , 但不要求可重复读  rea。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。