ホーム > データベーススペシャリスト試験 > 2015年
データベーススペシャリスト試験 2015年 午前2 問14
DBMSをシステム障害発生後に再立上げするとき, ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして, 適切なものはどれか。ここで, トランザクションの中で実行される処理内容は次のとおりとする。


ア:(正解)
イ:
ウ:
エ:
解説
DBMSの障害復旧におけるロールフォワードとロールバックの組合せ【午前2 解説】
要点まとめ
- 結論:コミット済みトランザクションはロールフォワード、未コミットはロールバックすべきです。
- 根拠:障害発生時にコミット済みの変更は反映し、未コミットの変更は取り消すことで一貫性を保ちます。
- 差がつくポイント:チェックポイント以降のトランザクションの状態を正確に把握し、コミット有無で処理を分ける理解が重要です。
正解の理由
障害発生後のDBMS再起動時、コミット済みトランザクションの変更は確定しているため、ログを用いてロールフォワード(再適用)します。一方、コミットしていないトランザクションは途中で中断しているため、その変更は不完全であり、ロールバック(取り消し)してデータの整合性を保ちます。
設問の図から、T2とT5はコミット済み(●印あり)、T6は未コミット(───のみ)であるため、T2とT5をロールフォワード、T6をロールバックする組合せ「ア」が正解です。
設問の図から、T2とT5はコミット済み(●印あり)、T6は未コミット(───のみ)であるため、T2とT5をロールフォワード、T6をロールバックする組合せ「ア」が正解です。
よくある誤解
コミット済みトランザクションもロールバックすべきと誤解しがちですが、これはデータの整合性を損ないます。未コミットトランザクションの処理をロールフォワードするのも誤りです。
解法ステップ
- チェックポイント以降のトランザクションを特定する。
- 各トランザクションのコミット状態を確認する(●があればコミット済み)。
- コミット済みトランザクションはロールフォワード対象とする。
- 未コミットトランザクションはロールバック対象とする。
- 選択肢の組合せと照合し、正しいものを選ぶ。
選択肢別の誤答解説
- ア:正解。コミット済みT2, T5をロールフォワード、未コミットT6をロールバック。
- イ:誤り。T3は読み取りのみでコミットも未コミットも示されていないためロールバック対象に含める必要なし。
- ウ:誤り。T1はコミット済みではなく、ロールフォワード対象に含めるのは誤り。
- エ:誤り。T1とT3の扱いが誤っている。T1は未コミット、T3は読み取りのみでロールバック対象外。
補足コラム
ロールフォワードはトランザクションログのREDO処理とも呼ばれ、コミット済みの変更をディスクに反映させます。ロールバックはUNDO処理で、未完了の変更を取り消し、データベースの一貫性を保ちます。チェックポイントは復旧時の処理範囲を限定し、効率化に寄与します。
FAQ
Q: なぜ読み取りのみのトランザクションはロールバックもロールフォワードも不要ですか?
A: 読み取りのみはデータを変更しないため、復旧処理の対象外となります。
A: 読み取りのみはデータを変更しないため、復旧処理の対象外となります。
Q: チェックポイントの役割は何ですか?
A: チェックポイントはログの安定化ポイントで、復旧時にログの適用範囲を限定し、復旧時間を短縮します。
A: チェックポイントはログの安定化ポイントで、復旧時にログの適用範囲を限定し、復旧時間を短縮します。
関連キーワード: トランザクション管理, ロールフォワード, ロールバック, チェックポイント, 障害復旧, データベース一貫性