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

平成23年度特別 システム監査技術者 午前Ⅱ 問17

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

問題

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

選択肢

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

トランザクション境界の監査視点

トランザクションを一つの処理単位として捉え、開始から完了までに守るべき整合性と、途中で異常が起きた場合の扱いを整理しながら、監査で確認する観点を絞り込みます。記録や追跡可能性にも注目します。

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

確認の中心は、処理の境界がどこに置かれ、その前後でデータの状態を一貫して説明できるかです。正常時だけでなく、失敗・中断時の記録と復旧の考え方も同じ視点で見比べます。

視点

処理の開始点と終了点を整理し、途中の状態変化、異常時の扱い、結果を後から確認できる記録が互いに矛盾しないかを考えます。

確認ポイント

  • 処理単位の開始と終了を区別できるか
  • 途中で中断した場合の状態を確認できるか
  • 結果や経過を監査記録から追跡できるか
正解と解説を見る

正解

ア

解説

実行途中で異常終了したトランザクションは、処理全体が完了していないため、その更新を取り消して開始前の状態へ戻します。これはトランザクションの原子性を保つためのロールバックです。

理由

トランザクションが実行途中で異常終了した場合、更新の一部だけをデータベースに残すと整合性が損なわれます。そのため、更新処理を取り消し、トランザクション開始前の状態に回復します。

比較

チェックポイントからコミット済み更新を再適用するロールフォワードは、主に障害発生後のデータベース回復で用いる考え方です。今回のような未完了トランザクションの取消しとは目的が異なります。

選択肢ア(正解)

これは正解だよ。実行途中で異常終了したトランザクションは処理が完了していないため、更新内容を確定させずに取り消します。ロールバックによって、トランザクション開始前の状態へ戻し、更新の一部だけが残ることを防ぎます。

選択肢イ

これは不正解だよ。チェックポイント時点へ戻し、コミット済みトランザクションをロールフォワードする処理は、障害後に確定済みの更新を再現する回復方法です。実行途中で異常終了した未完了トランザクションの更新を取り消す処理とは異なります。

選択肢ウ

これは不正解だよ。異常終了時点までの更新ログ情報を破棄するだけでは、データベースを開始前の状態へ正しく戻せるとは限りません。未完了の更新を取り消すには、ログなどを利用してロールバックを行う必要があります。

選択肢エ

これは不正解だよ。ロールフォワードはログを使って更新を先へ進め、確定済みの処理を再現する考え方です。今回のトランザクションは異常終了して処理が未完了なので、異常終了時点まで更新を進めるのではなく、更新を取り消します。

学習のポイント

異常終了時はロールバック、障害回復時はロールフォワードという役割の違いを整理します。

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

関連する過去問一覧

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