ロゴ

ロールバック

ろーるばっく

ひとことで言うと

障害発生時にデータベースをトランザクション開始前の状態に戻す回復処理。

解説

トランザクション処理において、障害発生時などにデータベースをトランザクション開始前の状態に戻す回復処理。更新前のデータ(更新前ログ)を使用して、未コミットのトランザクションによる変更を取り消す。ACID特性の原子性を保証するための重要な機能である。

くわしく解説

ロールバックとは、データベーストランザクション処理において、障害発生・エラー・明示的な取消命令(ROLLBACK文)により、トランザクション開始前の状態にデータベースを戻す回復処理である。更新前ログ(ビフォーイメージ)を使用して、そのトランザクションが加えた変更をすべて取り消す。ACID特性の原子性(Atomicity)を保証するための中心的な機能であり、トランザクションが完全に成功(コミット)しなければ、実施した更新はすべて無効化される。ロールバックはトランザクション単位での回復(局所的回復)に使用され、ソフトウェア障害時の回復に適している。一方、ロールフォワードはバックアップからの前進回復(前進復旧)であり、ハードウェア障害後の全体回復に使用される。

具体例で考えよう

銀行振込処理で「口座Aから出金」は成功したが「口座Bへ入金」でエラーが発生した場合、ロールバックにより口座Aからの出金処理も取り消され、振込前の残高状態に戻される。これにより資金の消滅を防ぐ。

試験対策ポイント

ロールフォワードとの違い(使用するログ・適用場面・回復方向)は最頻出。ACID特性の原子性との関連を押さえる。「未コミットのトランザクション取消」という定義を正確に覚えること。

関連用語

経営情報システム」の他の用語