[0546] ロールバック

平成15年度秋期 初級システムアドミニストレータ試験より
データベース障害時のリカバリ機能であるロールバックに関する記述として,適切なものはどれか。
更新後ジャーナルを用いて,トランザクション開始後の障害直前の状態にまでデータを復旧させる。
更新後ジャーナルを用いて,トランザクション開始直前の状態にまでデータを復旧させる。
更新前ジャーナルを用いて,トランザクション開始後の障害直前の状態にまでデータを復旧させる。
更新前ジャーナルを用いて,トランザクション開始直前の状態にまでデータを復旧させる。

正解

解説

 トランザクションとは,データベースにおけるデータ操作の一連の作業単位のことです。トランザクション確定前にデータ更新を破棄し,トランザクション開始前の状態へ戻す操作をロールバック(rollback)といいます。これだけでは分かりにくいので,例を挙げましょう。



商品を出庫する際に,在庫管理システムでは(1)商品が出庫される,(2)在庫数が減る,と 2つの処理が発生します。(1)については,データベースの出庫ログテーブルへの insert,(2)は,在庫テーブルの在庫数を update が発生するものとします。つまり,出庫という現象を,insert,update という2つの一連の処理によって実現させているわけです。この insert,update という一連の作業がトランザクションです。


ある商品を 10個出庫したので,オペレータがこれを登録しようとしたところ,誤って出庫数を 100として入力してしまいました。出庫後の在庫数が -50 とマイナス値になったためエラーが発生し,出庫ログテーブルには insert されたものの,在庫テーブルへの update は失敗した状態です。


この状態では出庫ログと在庫テーブル間でデータの整合がとれなくってしまうので,トランザクションをキャンセルしなければなりません。出庫ログへの insert を取り消し,トランザクション開始前の状態に戻す操作がロールバックです。





 ジャーナルファイルとは,データの更新履歴を記録するファイルです。
ロールバック操作を実現するためには,データが変更される前の状態を保持していなければならないので更新前ジャーナルの情報が必要となります。

 よって,エが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題