DBMSのチェックポイント|科目A-1(応用情報技術者) 令和6年 秋期午前試験 問31

出典:令和6年秋期 午前 問31 分野:データベース / トランザクション処理
DBMSのチェックポイントに関する記述として,適切なものはどれか。
  • ア:制約のチェックを行う時点を指し,データ操作ごとに即時にチェックを行うか,トランザクションのコミット時までチェックを遅延させるかの指定ができる。
  • イ:データベースバッファの内容を二次記憶に書き出した時点を指し,障害回復処理の際に,その時点までにコミットされたトランザクションの回復作業を不要にできる。
  • ウ:一つのトランザクションの途中に任意に設定できる時点を指し,プログラムによってその時点まで明示的にロールバックできる。
  • エ:分散トランザクションの調停者が,全参加者からコミット可否を受け取りコミットかロールバックかの判定を行う時点を指し,その後に全参加者にコミット又はロールバックの実行要求を発行することによって,分散トランザクションの原子性,一貫性が保証できる。
応用情報技術者
解説

チェックポイントとは、DBMSがデータベースバッファの内容などを二次記憶へ反映し、障害発生時の回復処理を効率化するために設定する時点です。

チェックポイントまでにコミットされ、その内容が二次記憶へ反映されているトランザクションについては、障害回復時に改めて回復処理を行う必要がありません。そのため、ログを最初から調べる必要がなくなり、障害回復に要する時間を短縮できます。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:制約のチェックを行う時点を指し,データ操作ごとに即時にチェックを行うか,トランザクションのコミット時までチェックを遅延させるかの指定ができる。
⇒遅延可能な整合性制約に関する説明です。制約を即時に検査するか、コミット時まで検査を遅らせるかを指定する仕組みであり、チェックポイントではありません。
ウ:一つのトランザクションの途中に任意に設定できる時点を指し,プログラムによってその時点まで明示的にロールバックできる。
⇒セーブポイントの説明です。トランザクションの途中に設定し、トランザクション全体ではなく、その時点まで部分的にロールバックするために利用します。
エ:分散トランザクションの調停者が,全参加者からコミット可否を受け取りコミットかロールバックかの判定を行う時点を指し,その後に全参加者にコミット又はロールバックの実行要求を発行することによって,分散トランザクションの原子性,一貫性が保証できる。
⇒2相コミットに関する説明です。複数の参加者を含む分散トランザクションで、調停者がコミット可否を確認して最終決定を通知する方式です。
TSUNAGARU-ADVICE

まず押さえたいこと

チェックポイントは、DBMSがデータベースバッファの内容などを二次記憶へ反映し、障害回復の基準点とする時点です。障害が起きた場合は、このチェックポイント以降を中心にログを使って回復処理を行います。

迷ったときの判断軸

「障害回復処理をどこから始めるか」という観点で判断します。チェックポイントまでにコミット済みで、その結果が二次記憶に反映されていれば、その部分について再実行する必要を減らせます。トランザクション途中まで戻すSAVEPOINTや、2相コミットの判定時点とは別の概念です。

科目Bにつなげるために

特にプロフェッショナルデジタルスキル(データ・AI)試験合格を目指す方は、ログ・チェックポイント・REDO・UNDOを一連の障害回復処理として整理しましょう。どのトランザクションを再実行し、どれを取り消すかという判断につながります。