データベーススペシャリスト 2012年 午前2 問14
問題文
システム障害発生時には、データベースの整合性を保ち、かつ、最新のデータベース状態に復旧する必要がある。このために、DBMSがトランザクションのコミット処理完了とみなすタイミングとして、適切なものはどれか。
選択肢
ア:アプリケーションの更新命令完了時点
イ:チェックポイント処理完了時点
ウ:ログバッファへのコミット情報書込み完了時点
エ:ログファイルへのコミット情報書出し完了時点(正解)
トランザクションのコミット処理完了タイミング【午前2 解説】
要点まとめ
- 結論:トランザクションのコミット完了は「ログファイルへのコミット情報書出し完了時点」が適切です。
- 根拠:ログファイルへの書き込みが完了して初めて、障害発生時に復旧可能な状態となるためです。
- 差がつくポイント:ログバッファへの書き込みだけでは揮発性メモリのため不十分で、永続的なログファイルへの書き込みが必須です。
正解の理由
トランザクションのコミット処理完了は、データベースの整合性を保ちつつ最新状態に復旧できることが重要です。
ログファイルへのコミット情報の書き込みが完了して初めて、障害発生時にログを用いてトランザクションの状態を正確に復元できます。
したがって、選択肢エの「ログファイルへのコミット情報書出し完了時点」が正解です。
ログファイルへのコミット情報の書き込みが完了して初めて、障害発生時にログを用いてトランザクションの状態を正確に復元できます。
したがって、選択肢エの「ログファイルへのコミット情報書出し完了時点」が正解です。
よくある誤解
ログバッファへの書き込み完了でコミット完了と誤解しがちですが、バッファは揮発性で障害時に消失します。
アプリケーションの更新命令完了やチェックポイント処理完了はコミット完了の条件として不十分です。
アプリケーションの更新命令完了やチェックポイント処理完了はコミット完了の条件として不十分です。
解法ステップ
- トランザクションのコミットとは何かを理解する(整合性と復旧の観点)。
- コミット完了の条件として、永続的な記録が必要なことを確認する。
- ログバッファとログファイルの違い(揮発性と永続性)を把握する。
- 選択肢の中で永続的な書き込み完了を示すものを選ぶ。
- 「ログファイルへの書出し完了時点」が最も適切と判断する。
選択肢別の誤答解説
- ア: アプリケーションの更新命令完了時点
→ アプリケーション側の処理完了はDBMSのコミット完了を意味せず、整合性保証に不十分です。 - イ: チェックポイント処理完了時点
→ チェックポイントは復旧効率向上のための処理であり、コミット完了のタイミングではありません。 - ウ: ログバッファへのコミット情報書込み完了時点
→ バッファは揮発性メモリであり、障害時に消失するためコミット完了とは認められません。 - エ: ログファイルへのコミット情報書出し完了時点
→ 永続的なログファイルへの書き込み完了により、障害復旧時にトランザクション状態を正確に再現可能です。
補足コラム
トランザクションのACID特性の中で「Durability(永続性)」を保証するために、コミット時にはログファイルへの書き込みが必須です。
また、チェックポイントはログの肥大化を防ぎ復旧時間を短縮するための仕組みであり、コミット完了とは別の役割を持ちます。
ログバッファは高速化のための一時的な領域であり、障害時のデータ損失リスクがあるためコミット完了条件にはなりません。
また、チェックポイントはログの肥大化を防ぎ復旧時間を短縮するための仕組みであり、コミット完了とは別の役割を持ちます。
ログバッファは高速化のための一時的な領域であり、障害時のデータ損失リスクがあるためコミット完了条件にはなりません。
FAQ
Q: なぜログバッファへの書き込みだけではコミット完了と認められないのですか?
A: ログバッファは揮発性メモリであり、障害発生時に内容が消失するため、永続性が保証されません。
A: ログバッファは揮発性メモリであり、障害発生時に内容が消失するため、永続性が保証されません。
Q: チェックポイント処理はコミット完了とどう違うのですか?
A: チェックポイントは復旧効率を上げるための処理であり、トランザクションのコミット完了とは直接関係ありません。
A: チェックポイントは復旧効率を上げるための処理であり、トランザクションのコミット完了とは直接関係ありません。
関連キーワード: トランザクション、コミット、ログファイル、データベース整合性、障害復旧、ACID特性、チェックポイント、ログバッファ

\ せっかくなら /
データベーススペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

