データベースのデータを更新するトランザクションが、 実行途中で異常終了したとき、更新中のデータに対して行われる処理はどれか。

  1. 異常終了時点までのトランザクションの更新ログ情報を破棄することによって、データをトランザクション開始前の状態に回復する。
  2. チェックポイント時点からコミットが完了しているトランザクションの更新ログ情報を使ってロールフォワードすることによって、 データを回復する。
  3. トランザクションの更新ログ情報を使い異常終了時点までロールフォワードすることによって、 データを回復する。
  4. トランザクションの更新ログ情報を使いロールバックすることによって、 データをトランザクション開始前の状態に回復する。

出典:令和4年度 システム監査技術者試験 午前2 問21




正解:エ
トランザクション処理における原子性についての問題です。
トランザクション期間における更新は、「一貫した更新が完了した状態」か「なにも更新しなかった状態」のいずれかに収まります。

回答ア:
誤りです。更新ログ情報を破棄することによって、データ自身に影響を与えることはありません。

回答イ:
誤りです。実行途中で異常終了したときのログを使って更新を行うと、中途半端な更新状態となり、データに不整合が発生する可能性があります。

回答ウ:
回答イと同様です。

回答エ:
正しい記述です。全ての更新をキャンセルし、トランザクション開始前のデータまで戻します。