ITサービスマネージャ 2016年 午前2 問13
問題文
データベースのロールバック処理の説明はどれか。
選択肢
ア:ログの更新後情報を用いて、トランザクション開始後の障害直前の状態にデータを復元させる。
イ:ログの更新後情報を用いて、トランザクション開始直前の状態にデータを復元させる。
ウ:ログの更新前情報を用いて、トランザクション開始後の障害直前の状態にデータを復元させる。
エ:ログの更新前情報を用いて、トランザクション開始直前の状態にデータを復元させる。(正解)
🔒 解説は解答すると表示されます
ロールバック処理【午前2解説】
正解の理由
ロールバックとは、トランザクションを取り消し、その処理による変更をなかったことにする処理です。
そのため、ログに記録された更新前情報を使い、データをトランザクション開始直前の状態に戻します。したがって、正しい説明はエです。
解法ステップ
- ロールバックは、トランザクションの変更を取り消す処理だと確認します。
- 変更を取り消すには、変更前の値が必要です。したがって、使うのはログの更新前情報です。
- トランザクションを取り消した結果、データはトランザクション開始直前の状態に戻ります。
- 「更新前情報」と「開始直前の状態」の組合せを選びます。
選択肢別の誤答解説
- ア:更新後情報を使って、障害直前の状態に復元する説明です。更新後情報で変更を反映する処理は、ロールバックではなくロールフォワードに関係します。
- イ:トランザクション開始直前の状態に戻す点は合っていますが、使う情報が更新後情報となっています。ロールバックでは更新前情報を使います。
- ウ:更新前情報を使う点は合っていますが、障害直前の状態に復元する点が誤りです。ロールバックではトランザクションの変更を取り消し、開始直前の状態に戻します。
- エ:更新前情報を使い、トランザクション開始直前の状態に戻す説明です。ロールバックの説明として適切です。
よくある誤解
- 「更新後情報で元に戻す」と考える
更新後情報は、更新を反映・再実行するロールフォワードで使われます。ロールバックでは更新前情報を使います。 - 「障害直前の状態に戻す」と考える
ロールバックで目指すのは、取り消すトランザクションの開始直前の状態です。障害直前の状態とは限りません。 - ロールバックとロールフォワードを混同する
ロールバックは変更の取り消し、ロールフォワードは変更の再適用です。
補足コラム
ログには、一般に更新前の値(更新前情報)や更新後の値(更新後情報)が記録されます。障害回復では、未完了のトランザクションをロールバックして取り消し、確定済みのトランザクションをロールフォワードして反映する、と整理すると理解しやすいです。
FAQ
Q. ロールバックでは、なぜ更新前情報が必要なのですか?
A. トランザクションによる変更を取り消し、変更前の値に戻すためです。
A. トランザクションによる変更を取り消し、変更前の値に戻すためです。
Q. ロールフォワードでは、どの情報を使いますか?
A. 更新後情報を使って、確定済みの更新をデータに反映します。
A. 更新後情報を使って、確定済みの更新をデータに反映します。
Q. ロールバック後のデータは、いつの状態になりますか?
A. 取り消したトランザクションの開始直前の状態になります。
A. 取り消したトランザクションの開始直前の状態になります。
関連キーワード: ロールバック、ロールフォワード、更新前情報、更新後情報、トランザクション、障害回復

\ せっかくなら /
ITサービスマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

