応用情報技術者 2024年 秋期 午前2 問31
問題文
DBMSのチェックポイントに関する記述として、適切なものはどれか。
選択肢
ア:制約のチェックを行う時点を指し、 データ操作ごとに即時にチェックを行うか、トランザクションのコミット時までチェックを遅延させるかの指定ができる。
イ:データベースバッファの内容を二次記憶に書き出した時点を指し、 障害回復処理の際に、その時点までにコミットされたトランザクションの回復作業を不要にできる。(正解)
ウ:一つのトランザクションの途中に任意に設定できる時点を指し、 プログラムによってその時点まで明示的にロールバックできる。
エ:分散トランザクションの調停者が、全参加者からコミット可否を受け取り、コミットかロールバックかの判定を行う時点を指し、 その後に全参加者にコミット又はロールバックの実行要求を発行することによって、 分散トランザクションの原子性、一貫性が保証できる。
DBMSのチェックポイントに関する問題【午前2 解説】
要点まとめ
- 結論:チェックポイントとは、データベースバッファの内容を二次記憶に書き出した時点を指し、障害回復時の処理負荷を軽減します。
- 根拠:障害発生時にチェックポイント以降のログだけを使って回復すればよく、全ログを遡る必要がなくなるため効率的です。
- 差がつくポイント:チェックポイントとトランザクション制御や分散トランザクションの調停処理との違いを正確に理解することが重要です。
正解の理由
イはチェックポイントの定義として正確です。チェックポイントは、データベースのバッファにある変更内容をディスクに書き出すことで、障害回復時にその時点までのコミット済みトランザクションの回復作業を不要にします。これにより、ログの巻き戻し範囲が限定され、回復時間が短縮されます。
よくある誤解
チェックポイントはトランザクションのコミット時点や制約チェックのタイミングではなく、障害回復の効率化を目的としたバッファの書き出し時点です。分散トランザクションの調停処理とは別の概念です。
解法ステップ
- 問題文の「チェックポイント」の意味を確認する。
- 選択肢の内容を「チェックポイントの役割」と照らし合わせる。
- トランザクションのコミットや制約チェック、分散トランザクションの調停と混同しない。
- 障害回復処理におけるチェックポイントの効果を理解する。
- 最も正確に説明している選択肢を選ぶ。
選択肢別の誤答解説
- ア:制約チェックのタイミングはチェックポイントとは無関係で、トランザクション制御の話です。
- イ:正解。チェックポイントはバッファの内容をディスクに書き出す時点を指します。
- ウ:トランザクションの途中で設定できる時点はセーブポイントであり、チェックポイントとは異なります。
- エ:分散トランザクションの調停者によるコミット判定は2フェーズコミットの話で、チェックポイントとは別の概念です。
補足コラム
チェックポイントはデータベースの障害回復性能を向上させる重要な機能です。頻繁にチェックポイントを設定すると回復は速くなりますが、書き込み負荷が増加します。逆に少なすぎると回復に時間がかかるため、適切なバランスが求められます。
FAQ
Q: チェックポイントはトランザクションのコミット時に必ず行われますか?
A: いいえ。チェックポイントは定期的または特定条件で行われ、コミットとは独立しています。
A: いいえ。チェックポイントは定期的または特定条件で行われ、コミットとは独立しています。
Q: セーブポイントとチェックポイントは同じものですか?
A: いいえ。セーブポイントはトランザクション内の部分的なロールバック用のマークで、チェックポイントは障害回復のためのバッファ書き出し時点です。
A: いいえ。セーブポイントはトランザクション内の部分的なロールバック用のマークで、チェックポイントは障害回復のためのバッファ書き出し時点です。
関連キーワード: チェックポイント、障害回復、トランザクション、バッファ管理、2フェーズコミット、セーブポイント

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

