平成27年度 春期 データベーススペシャリスト試験 午前II 問14
【問題14】
DBMSをシステム障害発生後に再立ち上げするとき、ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして、適切なものはどれか。ここで、トランザクションの中で実行される処理内容は次のとおりとする。
【解説】
DBMSでは、システム障害からの復旧時に、トランザクションの状態に応じて以下の処理を行います:
- ロールフォワード(前進復帰):障害発生前にコミットされたが、データベースに反映されていないトランザクションの更新内容を、ログを基に再適用します。
- ロールバック(後退復帰):障害発生時に未コミットのトランザクションの更新内容を、ログを基に取り消します。
各トランザクションの状態を確認します:
- T1:チェックポイント前にコミット済み。復旧処理不要。
- T2:チェックポイント後、障害発生前にコミット済み。ロールフォワードの対象。
- T3:障害発生時に未コミット。データベースへの書き込み操作がないため、ロールバック不要。
- T4:障害発生時に未コミット。データベースへの書き込み操作がないため、ロールバック不要。
- T5:チェックポイント後、障害発生前にコミット済み。ロールフォワードの対象。
- T6:障害発生時に未コミット。データベースへの書き込み操作があるため、ロールバックの対象。
したがって、ロールフォワードの対象は T2 と T5、ロールバックの対象は T6 です。
【答え】
ア: ロールフォワード(T2, T5)、ロールバック(T6)
出典:平成27年度 春期 データベーススペシャリスト試験 午前II 問14