平成23年度 秋期 システム監査技術者試験 午前II 問17
【問題17】
データベースのデータを更新中のトランザクションが,実行途中で異常終了した際,更新中のデータに対して行われる処理はどれか。
更新処理をなかったことにするために,ロールバックしてトランザクション開始前の状態に回復する。
チェックポイント時点にデータベースを戻し,コミットが完了しているトランザクションの更新をロールフォワードしてデータを回復する。
トランザクション異常の発生時点までの更新ログ情報を破棄して,開始前の状態に回復する。
トランザクションの更新ログ情報を使って異常終了時点までロールフォワードして回復する。
【解説】
ア: 更新処理をなかったことにするために,ロールバックしてトランザクション開始前の状態に回復する。
正しい。データベースではトランザクションが異常終了した場合,ACID特性の「原子性」を保証するためにロールバックを行い,開始前の状態に戻します。
イ: チェックポイント時点にデータベースを戻し,コミットが完了しているトランザクションの更新をロールフォワードしてデータを回復する。
誤り。これはシステムクラッシュ後のリカバリ処理(障害復旧)に関する説明であり,トランザクション単体の異常終了時の処理とは異なります。
ウ: トランザクション異常の発生時点までの更新ログ情報を破棄して,開始前の状態に回復する。
誤り。更新ログを破棄するのではなく,ロールバック処理によって開始前の状態に戻します。
エ: トランザクションの更新ログ情報を使って異常終了時点までロールフォワードして回復する。
誤り。異常終了したトランザクションの変更は確定されていないため,ロールフォワードではなくロールバックが適用されます。
【答え】
ア: 更新処理をなかったことにするために,ロールバックしてトランザクション開始前の状態に回復する。
出典:平成23年度 春期 システム監査技術者試験 午前II 問17