令和4年度 秋期 午前Ⅱ 問21
データベース
トランザクションに関する問題
データベースのデータを更新するトランザクションが,実行途中で異常終了したとき,更新中のデータに対して行われる処理はどれか。
- ア異常終了時点までのトランザクションの更新ログ情報を破棄することによって,データをトランザクション開始前の状態に回復する。
- イチェックポイント時点からコミットが完了しているトランザクションの更新ログ情報を使ってロールフォワードすることによって,データを回復する。
- ウトランザクションの更新ログ情報を使い異常終了時点までロールフォワードすることによって,データを回復する。
- エトランザクションの更新ログ情報を使いロールバックすることによって,データをトランザクション開始前の状態に回復する。
答えと解説を見る
✓ これが正解エトランザクションの更新ログ情報を使いロールバックすることによって,データをトランザクション開始前の状態に回復する。
解説
異常終了したトランザクションは、更新ログを使ってロールバックします。
トランザクションは、すべての処理が完了するか、まったく行われなかったかのどちらかでなければならないという原子性をもちます。実行の途中で異常終了したトランザクションは、一部の更新だけが反映された中途半端な状態を残してしまうので、その更新を取り消す必要があります。そこで、更新ログに記録されている更新前の値を使って、データをトランザクション開始前の状態に戻します。これがロールバックです。反対に、ロールフォワードは、障害で失われたデータを、バックアップと更新後のログを使ってコミット済みの状態まで進める回復方法です。完了していない処理は戻す、完了した処理は進めると覚えると区別できます。
ほかの選択肢はなぜ違うのか
- ア異常終了時点までのトランザクションの更新…:更新ログ情報を破棄しても、すでにデータベースに書き込まれた更新は元に戻りません。データを開始前の状態に回復するには、ログに記録された更新前の値を使って取り消す必要があり、ログを捨てると回復の手掛かりを失います。
- イチェックポイント時点からコミットが完了し…:チェックポイント以降にコミットが完了したトランザクションをロールフォワードするのは、障害で失われた確定済みの更新を復元する場面の処理です。途中で異常終了したトランザクションの更新を取り消す処理ではありません。
- ウトランザクションの更新ログ情報を使い異常…:異常終了した時点までロールフォワードすると、完了していない途中の更新までデータベースに反映されてしまいます。原子性を保つには途中の更新を取り消す必要があり、前に進める処理は向きが逆です。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
出典:令和4年度 秋期 システム監査技術者試験 午前Ⅱ 問21
同じ用語が出る問題
- 令和6年度 秋期 午前Ⅱ 問5:試査に関する問題(トランザクション)
- 令和3年度 秋期 午前Ⅱ 問25:IVRの説明(データベース)
- 令和2年度 10月 午前Ⅱ 問12:データ管理者に関する問題(データベース)
- 平成30年度 春期 午前Ⅱ 問17:トランザクションログに関する問題(トランザクション)
- 平成23年度 特別 午前Ⅱ 問17:トランザクションに関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)