DBMSが取得するログに関する記述【午前2 解説】
要点まとめ
- 結論:DBMSのログはロールフォワード復旧のために更新後情報を記録することが適切です。
- 根拠:ロールフォワードは障害発生後に更新後の状態を再現するため、更新後情報が必要です。
- 差がつくポイント:更新前情報はロールバック用、更新後情報はロールフォワード用と役割が明確に分かれています。
正解の理由
選択肢エは「ロールフォワードに備えて、更新後情報を取得する」と述べています。
ロールフォワードは障害発生後にログを使って更新操作を再適用し、データベースを最新状態に戻す復旧方法です。
このため、更新後のデータ(更新後情報)をログに記録しておく必要があります。
したがって、エが正解です。
よくある誤解
更新前情報はロールバックに使うため、ロールフォワードに使うと混同しやすいです。
また、トランザクションの取消しと復旧の目的を混同しがちです。
解法ステップ
- ログの役割を「ロールバック」と「ロールフォワード」に分けて理解する。
- ロールバックは更新前情報を使い、トランザクションの取消しに備える。
- ロールフォワードは更新後情報を使い、障害復旧に備える。
- 選択肢の説明とログの役割を照合し、正しい組み合わせを選ぶ。
選択肢別の誤答解説
- ア:更新後情報はロールフォワード用であり、トランザクション取消しには更新前情報が必要です。
- イ:更新前情報は媒体障害からの復旧(ロールバック)に使いますが、復旧はロールフォワードも含みます。
- ウ:ロールバック後の再実行は通常トランザクションの再試行であり、更新後情報ではなく更新前情報が重要です。
- エ:ロールフォワードに備えて更新後情報を取得する点が正しい。
補足コラム
DBMSのログには「UNDOログ」と「REDOログ」があります。
UNDOログは更新前情報を記録し、トランザクションの取り消し(ロールバック)に使います。
REDOログは更新後情報を記録し、障害復旧時のロールフォワードに使われます。
この二つのログを適切に管理することで、データベースの整合性と耐障害性が保たれます。
FAQ
Q: ロールバックとロールフォワードの違いは何ですか?
A: ロールバックはトランザクションの取消しで更新前情報を使い、ロールフォワードは障害復旧で更新後情報を使います。
Q: なぜ更新後情報がロールフォワードに必要なのですか?
A: 障害発生後にログから更新操作を再適用し、最新のデータ状態を復元するためです。
関連キーワード: DBMSログ、ロールバック、ロールフォワード、UNDOログ、REDOログ、障害復旧、トランザクション管理