ITパスポート 令和8年度 問56:databaseに関する問題
DBMS におけるチェックポイントの説明として,適切なものはどれか。
- aトランザクションが正常に処理されたときに,トランザクションの一連の処理を確定させること
- bトランザクションが何らかの理由で正常に処理されなかったときに,データベースをトランザクションの処理開始前の状態に戻すこと
- c複数のトランザクションを並列に処理しているときに,ロックの影響によってトランザクション同士が互いに相手のロックの解放を待つ状態になること
- d複数のトランザクションによるメモリ上のデータ更新の結果を,一度にまとめてHDDなどの外部記憶装置に書き込む操作や,操作が行われた時点のこと正答
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは d です。
データベースは、ちょっとした変更をすぐにディスク(保存用の倉庫)に書きこむと遅くなるので、いったんメモリ(机の上)にためておきます。でも、ためっぱなしだと停電のとき消えてしまいます。
そこで「ここまでの分をまとめて倉庫にしまうよ!」という区切りを定期的に作ります。これがチェックポイントです。机の上の書きかけをまとめて棚に片づける瞬間、とイメージするとOK。
👉 覚え方:チェックポイント=「ここまで保存したよ」の区切り。
ほかの選択肢:a コミット=処理を確定すること/b ロールバック=失敗を取り消して元に戻すこと/c デッドロック=お互いに順番待ちで動けなくなること。
なぜこれが正解か
正解は d。チェックポイントとは、メモリ上のバッファに溜まった複数トランザクションの更新結果を、まとめて外部記憶(HDDなど)へ書き出す操作、またはその時点を指す。これにより障害発生時の復旧(リカバリ)で読み直すログ範囲が短くなり、回復が速くなる。
各選択肢の解説
- a:処理を確定させること=コミット。
- b:処理開始前の状態に戻すこと=ロールバック。
- c:互いにロック解放を待ち合う状態=デッドロック。
- d:メモリの更新結果を一度にディスクへ書き込む操作・時点=チェックポイント(正解)。
覚え方・ひっかけ注意
コミット・ロールバック・デッドロックは超頻出の引っかけ役。チェックポイントは「障害復旧を速くするためのセーブ地点」と覚えると、a/b/cと混同しない。
理論的背景
DBMSにおけるチェックポイント(Checkpoint)はデータベース障害回復技術の核心的メカニズムである。RDBMSではトランザクションの更新操作を一旦メモリ上のバッファキャッシュ(バッファプール)に蓄積し、一定条件でHDD/SSDなどの永続ストレージに書き出す「遅延書き込み(Write-Behind)」戦略を採用する。チェックポイントはこの「バッファ上の変更を一括して永続ストレージに同期する操作、またはその時点」を指す。
チェックポイントが設計された背景として、DBMSのパフォーマンスとデータ永続性のトレードオフがある。更新のたびにストレージへ同期書き込みすると書き込みレイテンシが高くなりスループットが低下するが、バッファに溜め込みすぎるとシステム障害時の復旧時間が長くなる。チェックポイントはこのトレードオフを最適化するためのタイミング管理機構である。
障害回復との関係:チェックポイント後のトランザクションはWAL(Write-Ahead Logging:先行書き込みログ)を使ってREDO(前進復旧)で再適用可能。チェックポイント前に完了したトランザクションは再適用不要(既にストレージに反映済み)。これによりシステム再起動時の復旧作業の起点をチェックポイントに設定でき、復旧時間を大幅短縮できる。
実務での使われ方
MySQL(InnoDB)・PostgreSQL・Oracle・SQL Serverなどの主要RDBMSはそれぞれ独自のチェックポイントアルゴリズムを実装している。PostgreSQLでは`checkpoint_timeout`(デフォルト5分)と`max_wal_size`(デフォルト1GB)のどちらかの条件が満たされたときにチェックポイントが自動実行される。大量更新が集中する夜間バッチ処理では、チェックポイント処理によるI/Oスパイクがシステムパフォーマンスに影響を与えることがあり、DBA(データベース管理者)はチェックポイント頻度のチューニングを行う。
コミット(選択肢a)・ロールバック(選択肢b)・デッドロック(選択肢c)はトランザクション管理の基本概念であり、チェックポイントとは別レイヤーの機能である。
試験での位置づけ
チェックポイントはITパスポートのテクノロジー系「データベース」分野で出題されるDBMS障害回復技術の核心テーマ。コミット・ロールバック・デッドロック・チェックポイントの4概念は毎年出題される最頻出グループである。特にこれら4つの定義を混同しない訓練が重要で、「何をする操作か」を動詞レベルで明確にすることが鍵:コミット=確定、ロールバック=取消、デッドロック=膠着状態、チェックポイント=メモリ→ストレージの同期。基本情報技術者試験ではREDO・UNDO操作の詳細(どのトランザクションをロールフォワード/ロールバックするかの判定ロジック)まで問われる。障害の種類(トランザクション障害・システム障害・メディア障害)とそれぞれの回復手順(チェックポイント+WALログの組み合わせ方)の理解が基本情報合格の要件となる。
選択肢の発展補足
コミット(選択肢a)とチェックポイントの違いは試験でも実務でも混同されやすい重要ポイント。コミットはトランザクションの論理的確定(アプリケーションレベルの永続性保証)であり、コミット時にWALログへの書き込みは行われるが、データページのストレージへの書き込みは必ずしも発生しない(バッファキャッシュに残ることもある)。チェックポイントはバッファ上のダーティページ(変更済みだがストレージ未書き込みのページ)を物理的にストレージへ書き出す操作であり、コミット済み・未コミット両方のデータが対象となりうる。デッドロック(選択肢c)はトランザクションA・Bが互いにロック解放を待つ循環待機状態であり、DBMSはデッドロック検出アルゴリズム(ウェイト・フォーグラフ)で検出し、一方のトランザクションを自動的にロールバック(被害者選定)することで解消する。
出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和8年度 問56/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。