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