解释 DBMS 中可恢复性的概念
不可序列化调度的特点如下-
交易可能一致,也可能不一致。
交易可能会或可能不会恢复。
所以,现在让我们谈谈可恢复性计划。
我们都知道可恢复和不可恢复是不可序列化的技术,
不可恢复的时间表
如果一个事务从一个未提交的事务中执行脏读操作,并在它读取值的事务之前提交,那么这种调度称为不可恢复调度。
示例
让我们考虑如下所示的两个交易时间表-
由于以下原因,上述时间表不可恢复-
正在A上执行脏读操作的事务T2。
事务T2也在事务T2完成之前提交。
事务T1稍后失败并且有回滚。
事务T2读取的值不正确。
最后,事务T2无法恢复,因为它已经提交。
可恢复的时间表
如果任何从未提交事务执行脏读操作及其已提交操作的事务延迟到未提交事务提交或回滚,则此类调度称为可恢复调度。
示例
让我们考虑如下两个交易时间表-
由于以下原因,上述时间表是可恢复的时间表-
事务T2对A执行脏读操作。
事务T2的提交操作会延迟到事务T1提交或回滚。
事务稍后提交。
在上面的调度事务中,现在允许提交T2,而T1尚未提交。
在这种情况下,事务T1失败,事务T2仍有机会通过回滚恢复。