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


選択肢
ア:(正解)
イ:
ウ:
エ:
DBMSの障害復旧におけるロールフォワードとロールバックの判別【午前2 解説】
要点まとめ
- 結論:チェックポイント以降にコミット済みのトランザクションはロールフォワードし、未コミットはロールバックする。
- 根拠:障害発生時点でコミット済みの変更は反映し、未コミットの変更は取り消す必要があるため。
- 差がつくポイント:チェックポイントの位置とコミット状態の見極め、特にコミット済みか否かの判別が重要。
正解の理由
正解はアです。
チェックポイント以降でコミット済みのトランザクションはT2とT5であり、これらはロールフォワード対象です。障害発生時点で未コミットのトランザクションはT6のみで、これがロールバック対象となります。T3はコミットしていないためロールバック対象ですが、チェックポイント前に開始しているため復旧対象外です。T1はチェックポイント前に終了しており、復旧対象外です。
チェックポイント以降でコミット済みのトランザクションはT2とT5であり、これらはロールフォワード対象です。障害発生時点で未コミットのトランザクションはT6のみで、これがロールバック対象となります。T3はコミットしていないためロールバック対象ですが、チェックポイント前に開始しているため復旧対象外です。T1はチェックポイント前に終了しており、復旧対象外です。
よくある誤解
- チェックポイント前のトランザクションもロールフォワード対象と誤解しやすい。
- コミット済みかどうかを見落とし、未コミットをロールフォワードしてしまう。
解法ステップ
- チェックポイントの位置を確認し、トランザクションの開始・終了位置を把握する。
- 各トランザクションのコミット状態を判別する(黒丸の有無で判断)。
- チェックポイント以降にコミット済みのトランザクションをロールフォワード対象とする。
- チェックポイント以降で未コミットのトランザクションをロールバック対象とする。
- チェックポイント前に終了したトランザクションは復旧対象外とする。
選択肢別の誤答解説
- イ:T3をロールバック対象にしているが、T3はチェックポイント前に開始しているため復旧対象外。
- ウ:T1をロールフォワード対象にしているが、T1はチェックポイント前に終了しており復旧不要。
- エ:ウと同様にT1をロールフォワード対象にしている点が誤り。
補足コラム
DBMSの障害復旧では「チェックポイント」が重要な役割を果たします。チェックポイントはデータベースの状態を安定化させるためのポイントで、これ以降のトランザクションの状態を基準に復旧処理が行われます。ロールフォワードはコミット済みの変更を反映し、ロールバックは未コミットの変更を取り消す処理です。
FAQ
Q: チェックポイント前のトランザクションはなぜ復旧対象外ですか?
A: チェックポイント時点でデータベースに反映済みであり、再度復旧する必要がないためです。
A: チェックポイント時点でデータベースに反映済みであり、再度復旧する必要がないためです。
Q: コミット済みかどうかはどのように判断しますか?
A: 問題文の図では黒丸(●)がコミット済みの印として示されています。
A: 問題文の図では黒丸(●)がコミット済みの印として示されています。
関連キーワード: ロールフォワード、ロールバック、チェックポイント、トランザクション管理、障害復旧

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

