資料庫管理系統(DBMS)中恢復計劃的不同型別是什麼?
如果任何執行髒讀操作的事務來自未提交的事務,並且其提交操作也被延遲,直到未提交的事務被提交或回滾,則此類計劃稱為可恢復計劃。
可恢復計劃的型別
有三種類型的可恢復計劃,下面將結合相關示例進行解釋:
- 級聯計劃
- 非級聯計劃
- 嚴格計劃。
可恢復計劃的型別如下表所示:

可恢復計劃
首先,讓我們看一個可恢復計劃的示例。
| T1 | T2 |
|---|---|
| R(X) | |
| W(X) | |
| W(X) | |
| R(X) | |
| commit | |
| Commit |
這裡,事務 T2 讀取由事務 T1 寫入的值,並且 T2 的提交發生在 T1 提交之後。因此,這是一個可恢復計劃。
可恢復計劃再次細分為非級聯和嚴格計劃。
- 級聯計劃
級聯計劃被歸類為可恢復計劃。可恢復計劃基本上是指執行讀取操作的特定事務的提交操作被延遲,直到未提交的事務提交或回滾。
級聯回滾是一種回滾型別,如果一個事務失敗,則會導致其他依賴事務的回滾。級聯回滾的主要缺點是它會導致 CPU 時間浪費。
以下是一個級聯計劃的示例:
| T1 | T2 | T3 | T4 |
|---|---|---|---|
| Read(A) | |||
| Write(A) | |||
| Read (A) | |||
| Write(A) | |||
| Read(A) | |||
| Write(A) | |||
| Read(A) | |||
| Write(A) | |||
| Failure |
以上事務由於 T1 失敗而導致級聯回滾,T2 回滾,T2 的回滾導致 T3 回滾,T3 的回滾導致 T4 回滾。
- 非級聯計劃
當不允許事務讀取資料,直到最後一個寫入它的事務提交或中止時,此類計劃稱為非級聯計劃。
以下是一個非級聯計劃的示例:
| T1 | T2 |
|---|---|
| R(X) | |
| W(X) | |
| W(X) | |
| commit | |
| R(X) | |
| Commit |
這裡,事務 T2 僅在事務 T1 提交後讀取 **X** 的更新值。因此,該計劃是非級聯計劃。
- 嚴格計劃
以下是一個嚴格計劃的示例:
| T1 | T2 |
|---|---|
| R(X) | |
| R(X) | |
| W(X) | |
| commit | |
| W(X) | |
| R(X) | |
| Commit |
這裡,事務 T2 僅在事務 T1 提交後讀取和寫入事務 T1 的更新或寫入值。因此,該計劃是嚴格計劃。
可恢復計劃在下圖中表示:

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP