Skip to the content.

最終更新日:2026年7月25日

まず結論

ロールバックとは、トランザクションの途中で異常終了したとき、処理を取り消して開始前の状態に戻す処理です。

基本情報技術者試験では、次の対応を押さえると判断しやすいです。

ロールバック
→ 更新を取り消す
→ 更新前ログを使う

ロールフォワード
→ 更新をやり直して進める
→ 更新後ログを使う

データベース更新の途中で異常終了し、未コミットの処理を取り消す場合は、ログファイルの更新前情報を使ってロールバックします。

直感的な説明

ロールバックは、作業を途中でやめて、作業前の状態に戻すイメージです。

例えば、表計算ソフトで編集中に間違えたとき、元に戻す操作をします。

変更する
↓
途中で問題が起きる
↓
変更前の状態に戻す

これがロールバックの考え方です。

一方、ロールフォワードは、バックアップ時点から、ログに残っている更新内容を使って先へ進めるイメージです。

バックアップ時点に戻す
↓
その後の更新をログで再現する
↓
障害直前の状態へ近づける

つまり、ロールバックは 戻す、ロールフォワードは 進める と考えると分かりやすいです。

定義・仕組み

データベースでは、更新処理を安全に行うために、ログファイルに更新情報を記録します。

ログには、主に次のような情報があります。

情報 役割
更新前情報 更新する前の値。取り消しに使う
更新後情報 更新した後の値。再実行に使う
トランザクション開始情報 処理が始まったことを示す
コミット情報 処理が正常に完了したことを示す

ロールバックでは、更新を取り消す必要があります。

そのため、更新後の値ではなく、更新前の値を使います。

更新前:在庫 10
更新後:在庫 8

異常終了したので取り消す
↓
更新前の在庫 10 に戻す

ロールフォワードでは、バックアップ時点から更新を再現する必要があります。

そのため、更新後の値を使います。

バックアップ時点:在庫 10
更新後ログ:在庫 8

更新を再現する
↓
在庫 8 に進める

このテーマは、基本情報技術者試験の「データベース」や「トランザクション処理」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、障害回復に使う情報を選ぶ問題として出題されやすいです。

次の表現があれば、ロールバックを疑います。

問題文の表現 判断
トランザクションの途中で異常終了 ロールバック
更新を取り消す ロールバック
開始直前の状態に戻す ロールバック
更新前情報を使う ロールバック

一方で、次の表現ならロールフォワードを疑います。

問題文の表現 判断
データベースをバックアップから復元 ロールフォワードの可能性
バックアップ後の更新を反映する ロールフォワード
障害直前の状態へ近づける ロールフォワード
更新後情報を使う ロールフォワード

次の流れなら、更新を取り消すために ログファイルの更新前情報 を使います。

データベース更新の途中で異常終了
↓
ロールバックで復元

どんな場面で使う?

問題文では、トランザクションの途中で障害が起きたときに、どの処理を有効にするかを判断する場面があります。

例えば、次のような流れを考えます。

トランザクション開始
↓
データを更新
↓
異常終了
↓
コミットしていない

この場合、途中まで行った更新は確定していません。

そのため、更新を取り消して、開始前の状態に戻します。

未コミットの更新
↓
ロールバック
↓
更新前情報で戻す

一方で、すでにコミット済みの更新を、バックアップから復元したDBに反映したい場合は、ロールフォワードの考え方になります。

バックアップから復元
↓
コミット済み更新をログで反映
↓
更新後情報で進める

問題文では、まず 取り消すのか、再現するのか を読むのが大切です。

よくある誤解・混同

ロールバックとロールフォワードでよくある誤解は、どちらもログを使うので、更新前情報と更新後情報を混同してしまうこと です。

誤解 正しい理解
ロールバックは更新後情報を使う ロールバックは更新前情報を使う
ロールフォワードは更新前情報を使う ロールフォワードは更新後情報を使う
バックアップファイルだけで常に最新状態に戻せる バックアップ後の更新はログで補う必要がある
異常終了した未コミット処理は反映する 未コミット処理は取り消す
コミット済み更新も必ず取り消す コミット済み更新は原則として有効にする

試験では、次の切り分けを残しておくと強いです。

取り消す → ロールバック → 更新前情報
進める   → ロールフォワード → 更新後情報

バックアップファイルやスナップショットは、ある時点の状態を戻すための情報です。

しかし、トランザクション途中の取り消しでは、更新前ログが重要になります。

まとめ(試験直前用)

  • ロールバックは、未完了の更新を取り消して開始前に戻す処理
  • ロールバックでは、ログファイルの更新前情報を使う
  • ロールフォワードは、バックアップ後の更新をログで再現して進める処理
  • ロールフォワードでは、ログファイルの更新後情報を使う
  • 途中で異常終了した未コミット処理は取り消す
  • バックアップから戻した後に進めるならロールフォワード
  • 「取り消すなら更新前、進めるなら更新後」で判断する

© 2024-2026 stemtazoo. All rights reserved.