AUシステム監査技術者試験 午前Ⅱ

令和4年度秋期 システム監査技術者 午前Ⅱ 問21

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

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

トランザクション整合性の確認視点

処理の境界をどこに置くかに注目し、開始から完了までに関わる更新を一つのまとまりとして捉えます。途中で失敗や中断が起きた場合の状態も比較し、整合性を保つ観点を整理しましょう。

この問題で問われていること

焦点は、複数の更新が同じ処理単位に含まれるかを見極めることです。処理途中の失敗や再実行を想定し、関連するデータの状態が一貫して扱われるかを確認する手順に集中しましょう。

視点

トランザクションを検討するときは、処理の開始点・完了点・中断時点を区切り、同時に扱うべき更新の範囲を整理します。そのうえで、成功時と異常時に残る状態を比較し、関連データ間の矛盾が生じないかを確認します。

確認ポイント

  • 各更新が同じ処理単位に属するか
  • 途中失敗時に関連データの状態を確認できるか
  • 再実行時に重複や不整合が生じないか
正解と解説を見る

正解

エ

解説

トランザクションが実行途中で異常終了した場合、完了していない更新を取り消して、データをトランザクション開始前の状態へ戻す。更新ログを利用したロールバックが適切です。

理由

異常終了したトランザクションはコミットされていないため、その途中までの更新を有効な結果として残してはいけない。更新ログを使って変更を取り消し、トランザクション開始前の状態に回復する処理がロールバックです。

比較

ロールフォワードは、障害後にコミット済みの更新を再適用してデータを進める回復方法です。一方、実行途中で異常終了した処理には、未完了の更新を取り消すロールバックを適用する。

選択肢ア

これは不正解だよ。異常終了したトランザクションの更新ログ情報を破棄しても、すでにデータへ反映された更新を自動的に取り消せるとは限らない。開始前の状態へ戻すには、ログに基づいて更新内容を逆方向に適用する処理が必要である。

選択肢イ

これは不正解だよ。チェックポイント以降のコミット済みトランザクションを再適用する処理は、障害後に確定済みの更新を反映するロールフォワードの説明である。実行途中で異常終了したトランザクションの更新を取り消す処理とは目的が異なる。

選択肢ウ

これは不正解だよ。ロールフォワードは更新ログを使ってデータを先へ進める処理であり、異常終了時点まで更新を進めるものではない。途中で終了したトランザクションの未完了の変更は、確定した結果として残さず取り消す必要がある。

選択肢エ(正解)

これは正解だよ。実行途中で異常終了したトランザクションはコミットされていないため、途中まで行われた更新を取り消す必要がある。更新ログ情報を使ってロールバックし、データをトランザクション開始前の状態に回復する説明と一致する。

学習のポイント

異常終了時のロールバックと、正常完了後のロールフォワードを区別する。

出典:独立行政法人 情報処理推進機構(IPA)令和4年度秋期 システム監査技術者試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針