応用情報技術者 2015年 秋期 午前2 問30
問題文
チェックポイントを取得する DBMS において、図のような時間経過でシステム障害が発生した。前進復帰 (ロールフォワード)によって障害回復できるトランザクションだけを全て挙げたものはどれか。

選択肢
ア:T1
イ:T2とT3
ウ:T4と5(正解)
エ:T5
チェックポイントを取得する DBMS における前進復帰【午前2 解説】
要点まとめ
- 結論:前進復帰で回復可能なトランザクションは、チェックポイント後に開始しコミット済みのT4とT5です。
- 根拠:チェックポイント以降に開始し、障害発生前にコミットしたトランザクションのみが前進復帰で反映されます。
- 差がつくポイント:チェックポイントの位置とコミット時点の関係を正確に理解し、未コミットやチェックポイント前のトランザクションを除外することが重要です。
正解の理由
前進復帰(ロールフォワード)は、チェックポイント時点のデータベース状態からログを適用して障害発生時点までの変更を反映させる手法です。
- T1はチェックポイント前に完了しているため、すでに反映済みで復帰対象外。
- T2とT3は未コミットであり、前進復帰では反映されません。
- T4とT5はチェックポイント後に開始し、障害発生前にコミット済みなので、ログ適用により回復可能です。
よって、ウ: T4とT5が正解です。
よくある誤解
チェックポイント前に完了したトランザクションも前進復帰で回復できると誤解しがちです。実際はチェックポイント時点で反映済みです。
また、未コミットのトランザクションを前進復帰で回復できると考えるのも誤りです。
また、未コミットのトランザクションを前進復帰で回復できると考えるのも誤りです。
解法ステップ
- チェックポイントの位置を確認し、それ以前のトランザクションは復帰済みと判断する。
- 障害発生時点を確認し、それ以降の操作は考慮しない。
- 各トランザクションの開始・コミット時点を比較し、チェックポイント後に開始し障害前にコミット済みのものを抽出する。
- 未コミットのトランザクションは前進復帰で回復できないため除外する。
- 抽出したトランザクションを選択肢と照合し、正解を決定する。
選択肢別の誤答解説
- ア: T1
チェックポイント前に完了しているため、前進復帰の対象外です。 - イ: T2とT3
どちらも未コミットであり、前進復帰では回復できません。 - ウ: T4とT5
チェックポイント後に開始し、障害前にコミット済みなので正解です。 - エ: T5
T4も条件を満たしているため、T5のみは不完全な回答です。
補足コラム
チェックポイントとは、DBMSがディスク上のデータとログの整合性を保つために状態を保存する時点です。
障害回復では、チェックポイント時点のデータを基にログを適用(前進復帰)し、未コミットのトランザクションはロールバック(後退復帰)されます。
この仕組みを理解することは、データベースの信頼性確保に不可欠です。
障害回復では、チェックポイント時点のデータを基にログを適用(前進復帰)し、未コミットのトランザクションはロールバック(後退復帰)されます。
この仕組みを理解することは、データベースの信頼性確保に不可欠です。
FAQ
Q: チェックポイント前にコミットしたトランザクションはなぜ復帰対象外ですか?
A: チェックポイント時点でデータに反映済みのため、前進復帰の対象にはなりません。
A: チェックポイント時点でデータに反映済みのため、前進復帰の対象にはなりません。
Q: 未コミットのトランザクションは前進復帰で回復できますか?
A: いいえ。未コミットのトランザクションはロールバックされるため、前進復帰では回復できません。
A: いいえ。未コミットのトランザクションはロールバックされるため、前進復帰では回復できません。
関連キーワード: チェックポイント、前進復帰、ロールフォワード、トランザクション管理、障害回復、DBMS

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

