問題 No.1901
データベースのトランザクション処理において、障害が発生した際に行った処理を取り消して、データベースをトランザクション開始前の状態に戻す操作を表す用語はどれか。
【正解の解説】
ロールバック
料理で例えるなら、レシピを見ながらケーキを作っている途中で卵を床に落としてしまい、最初からやり直すためにキッチンを綺麗にリセットするようなものです。データベースの世界では、中途半端な状態でデータが保存されると大惨事になるため、この「なかったことにする」安全弁が絶対に必要不可欠となります。
スポンサーリンク
【その他の選択肢の解説】
コミット
ロールバックが「取り消し」であるのに対し、コミットは「確定」という正反対の役割を持ちます。オンラインショッピングの決済で例えるなら、注文手続きが無事に完了して「購入確定ボタン」を押すのがコミット、エラーで決済が失敗して買い物が白紙に戻るのがロールバックです。
チェックポイント
ロールバックが過去の状態へ「戻る」処理であるのに対し、チェックポイントは復旧作業を効率化するための「目印」をつける仕組みです。長いゲームをプレイ中に、こまめにセーブデータを残しておくことで、ゲームオーバーになった時に一番最初からではなく直前のセーブからやり直せるようにする機能に似ています。
デッドロック
ロールバックがシステムを元に戻す「操作」であるのに対し、デッドロックはシステムが身動き取れなくなる「トラブル(状態)」そのものを指します。お互いに「そっちが先に通ってよ」と譲り合った結果、二人の通行人が廊下の真ん中で永遠に立ち往生してしまうような、データベース特有の厄介な膠着状態のことです。