SC情報処理安全確保支援士試験 午前Ⅱ

平成24年度秋期 情報処理安全確保支援士 午前Ⅱ 問21

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

問題

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

選択肢

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

更新途中で失敗したら、変更はなかったことに戻すよ

トランザクションが更新の途中で異常終了した場合は、その途中までの変更をそのまま残しちゃダメだよ。料理中に失敗した材料を鍋に入れっぱなしにしないで、作り始める前の状態に戻すイメージだね。だから、そのトランザクションによる変更はロールバックされて、開始前の一貫した状態へ回復されるよ。

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

この問題では、すでにコミットされた更新を復旧する処理と、まだ完了していないトランザクションの変更を取り消す処理を区別できるかがポイントだよ。コミット前に失敗したものは、確定していない作業なのでロールバックして取り消そう。

異常終了時の基本回復

データベース回復では、未コミット更新は取り消し、必要ならコミット済み更新を再実行する。設問は前者を問うている。

未コミット更新\n-> ロールバック\n-> 開始前状態へ戻す

確認ポイント

  • ロールフォワードは主にコミット済み更新の再現に使う。
  • 更新ログ破棄だけでは適切な回復にならない。
  • ロールバックを選ぶ。
正解と解説を見る

正解

エ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。更新ログを破棄するだけでは、データは元に戻らないよ。ログは「何をしたか」が書かれたレシートやメモみたいなものだから、メモを捨てても、すでに動かした荷物が元の場所に戻るわけではないんだ。戻すにはログなどを使ってロールバックする必要があるよ。

選択肢イ

これは不正解だよ。チェックポイントからコミット済みの更新をロールフォワードするのは、停電などでデータベース全体を復旧するときの話だよ。今回は「作業中の1件の取引が途中でこけた」場面だから、窓口で途中まで書いた申込書を完成扱いにするのではなく、最初からなかったことに戻す必要があるんだ。

選択肢ウ

これは不正解だよ。異常終了時点までロールフォワードすると、失敗した途中の作業まで進めてしまうことになるよ。泥棒が途中まで金庫を開けた記録を使って、わざわざ最後まで開けにいくようなものだから、今回やるべき処理とは逆なんだ。

選択肢エ(正解)

これは正解だよ。トランザクションが途中で異常終了したら、途中までの更新は信用できないのでロールバックして開始前に戻すんだ。たとえば料理中に材料を入れ間違えたら、そのまま完成させるのではなく、いったん作り始める前の状態に戻すイメージだよ。

出典:独立行政法人 情報処理推進機構(IPA)平成24年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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