平成28年度秋期 応用情報技術者試験 午前 問30
DBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。

- ア ロールフォワード:T2,T5 ロールバック:T6
- イ ロールフォワード:T2,T5 ロールバック:T3,T6
- ウ ロールフォワード:T1,T2,T5 ロールバック:T6
- エ ロールフォワード:T1,T2,T5 ロールバック:T3,T6
解答・解説を見る
正解:ア
AI解説
正解はア(ロールフォワード:T2,T5/ロールバック:T6)。障害回復の原則は、(1)チェックポイント以降にコミットが完了した更新トランザクションは、更新結果をディスクに反映し直すためログの更新後情報でロールフォワード(前進復帰)、(2)障害発生時点で未コミットの更新トランザクションは、中途半端な更新を取り消すためログの更新前情報でロールバック(後退復帰)、(3)参照(Read)しかしないトランザクションはデータを変更していないので回復処理不要、である。これを各トランザクションに当てはめるとT2・T5が前進復帰、T6が後退復帰となる。 ア: 正解。T2とT5はチェックポイント後にコミットした更新トランザクションなのでロールフォワード、T6は障害時点で未コミットの更新トランザクションなのでロールバックする。T1はチェックポイント前に完了済みで反映済み、T3は参照のみなのでどちらも不要である。 イ: 誤り。T3は参照処理だけでデータベースを更新していないため、ロールバックの対象にはならない。 ウ: 誤り。T1はチェックポイント時点までに完了しており、その更新はチェックポイントでディスクに反映済みなので、ロールフォワードは不要である。 エ: 誤り。T1(チェックポイント前に完了)もT3(参照のみ)も回復処理の対象外であり、両方を含めている点が不適切である。 💡 「チェックポイント=そこまでの更新はディスク反映済み」が起点。コミット済みなら前進復帰、未コミットなら後退復帰、参照のみは対象外、の3分類で機械的に判定できる。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。