情報処理安全確保支援士試験 2012年 秋期 午前221


データベースのデータを更新するトランザクションが、実行途中で異常終了したとき,更新中のデータに対して行われる処理はどれか。
異常終了時点までの更新ログ情報を破棄することによって,データをトランザクション開始前の状態に回復する。
チェックポイント時点からコミットが完了しているトランザクションの更新をロールフォワードすることによって,データを回復する。
トランザクションの更新ログ情報を使って異常終了時点までロールフォワードすることによって,データを回復する。
ロールバックすることによって,データをトランザクション開始前の状態に回復する。(正解)

解説

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

要点まとめ

  • 結論:異常終了したトランザクションの更新はロールバックにより開始前の状態に戻す処理が行われます。
  • 根拠:ロールバックはトランザクションの原子性を保証し、不完全な更新を取り消すために用いられます。
  • 差がつくポイント:ロールフォワードはコミット済みの更新を反映する処理であり、異常終了時の未完了更新の取り消しには使いません。

正解の理由

異常終了したトランザクションは、その更新が途中で止まっているため、データの整合性を保つために開始前の状態に戻す必要があります。この処理を「ロールバック」と呼びます。ロールバックは、トランザクションの原子性(Atomicity)を保証し、部分的な更新がデータベースに残らないようにします。選択肢エは「ロールバックすることによって、データをトランザクション開始前の状態に回復する」とあり、これが正しい処理です。

よくある誤解

ロールフォワードはコミット済みの更新を反映する処理であり、異常終了したトランザクションの未完了更新を取り消すものではありません。更新ログの破棄も誤りで、ログは回復に必須です。

解法ステップ

  1. トランザクションの異常終了を確認する。
  2. 更新が途中で止まっているため、データの整合性が崩れている可能性を認識する。
  3. トランザクション開始前の状態に戻す必要があることを理解する。
  4. ロールバック処理が該当することを判断する。
  5. ロールバックにより未完了の更新を取り消し、データベースの整合性を保つ。

選択肢別の誤答解説

  • ア: 更新ログ情報を破棄するのは誤り。ログは回復処理に不可欠であり、破棄すると回復不能になる。
  • イ: チェックポイント時点からコミット済みトランザクションの更新をロールフォワードするのは正常終了後の回復処理であり、異常終了トランザクションの未完了更新には関係ない。
  • ウ: 異常終了時点までロールフォワードするのは誤り。ロールフォワードはコミット済みの更新を反映する処理で、未完了の更新を反映することはない。
  • エ: ロールバックによりトランザクション開始前の状態に戻す処理であり、異常終了時の未完了更新を取り消す正しい方法。

補足コラム

トランザクションのACID特性の一つ「Atomicity(原子性)」は、処理が全て成功するか全て失敗するかを保証します。異常終了時にはロールバックで全ての変更を取り消し、データベースの一貫性を保ちます。逆に「Durability(永続性)」はコミット後の変更が失われないことを保証し、これにはロールフォワードが関与します。

FAQ

Q: ロールバックとロールフォワードの違いは何ですか?
A: ロールバックは未完了の更新を取り消し開始前の状態に戻す処理、ロールフォワードはコミット済みの更新を反映しデータを最新状態に戻す処理です。
Q: チェックポイントはどのような役割を持ちますか?
A: チェックポイントはログの一部をディスクに書き込み、回復処理の効率化を図るための基準点です。

関連キーワード: トランザクション, ロールバック, ロールフォワード, データベース回復, ACID特性, 原子性, チェックポイント
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ