数据库管理系统(DBMS)中恢复计划的不同类型是什么?


如果任何执行脏读操作的事务来自未提交的事务,并且其提交操作也被延迟,直到未提交的事务被提交或回滚,则此类计划称为可恢复计划。

可恢复计划的类型

有三种类型的可恢复计划,下面将结合相关示例进行解释:

  • 级联计划
  • 非级联计划
  • 严格计划。

可恢复计划的类型如下表所示:

可恢复计划

首先,让我们看一个可恢复计划的示例。

T1T2
R(X)
W(X)
W(X)
R(X)
commit
Commit

这里,事务 T2 读取由事务 T1 写入的值,并且 T2 的提交发生在 T1 提交之后。因此,这是一个可恢复计划。

可恢复计划再次细分为非级联和严格计划。

  • 级联计划

级联计划被归类为可恢复计划。可恢复计划基本上是指执行读取操作的特定事务的提交操作被延迟,直到未提交的事务提交或回滚。

级联回滚是一种回滚类型,如果一个事务失败,则会导致其他依赖事务的回滚。级联回滚的主要缺点是它会导致 CPU 时间浪费。

以下是一个级联计划的示例:

T1T2T3T4
Read(A)
Write(A)
Read (A)
Write(A)
Read(A)
Write(A)
Read(A)
Write(A)
Failure

以上事务由于 T1 失败而导致级联回滚,T2 回滚,T2 的回滚导致 T3 回滚,T3 的回滚导致 T4 回滚。

  • 非级联计划

当不允许事务读取数据,直到最后一个写入它的事务提交或中止时,此类计划称为非级联计划。

以下是一个非级联计划的示例:

T1T2
R(X)
W(X)
W(X)
commit
R(X)
Commit

这里,事务 T2 仅在事务 T1 提交后读取 **X** 的更新值。因此,该计划是非级联计划。

  • 严格计划

以下是一个严格计划的示例:

T1T2
R(X)
R(X)
W(X)
commit
W(X)
R(X)
Commit

这里,事务 T2 仅在事务 T1 提交后读取和写入事务 T1 的更新或写入值。因此,该计划是严格计划。

可恢复计划在下图中表示:

更新于: 2022年12月22日

23K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.