この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

DBMS(データベース管理システム)におけるトランザクションのコミットは、そのトランザクションによる更新が確定し、たとえその直後に障害が発生しても結果が失われないこと(永続性)を保証するものです。この永続性を保証するため、DBMSはトランザクションの更新内容を記録したコミット情報(ログ)を、メモリ上のログバッファだけでなく、不揮発性の記憶媒体であるログファイル(ディスク上のログ)へ確実に書き込んだ時点で、コミット処理が完了したとみなします。これは「ログ先書き(WAL、Write Ahead Log)」の考え方に基づき、ログファイルへの書き込みが完了していれば、障害でメモリ上のデータが失われても、ログから更新内容を再現(ロールフォワード)して復旧できるためです。選択肢dの「ログファイルへのコミット情報書込み完了時点」が、コミット処理が完了するタイミングとして正しく、正解です。他の選択肢を確認すると、アプリケーションの更新命令完了時点ではまだディスクに確定しておらず、チェックポイント処理はバッファの内容を定期的にディスクへ反映する別の処理であり、ログバッファ(メモリ上)への書き込み完了では障害時にその内容が失われる可能性があるため、いずれもコミット完了のタイミングとしては不適切です。コミット完了は「ログファイル(ディスク)への書き込み完了時点」が核心です。

なぜ他の選択肢は違うのか

選択肢 ア
「アプリケーションプログラムの更新命令完了時点」は誤りです。アプリケーションが更新命令を出した時点では、更新内容はまだメモリ上にあるだけで、ディスクへ確定的に記録されていません。障害が起きれば失われる可能性があり、コミット完了のタイミングではありません。更新命令を出した時点では更新内容はまだメモリ上にあるだけでディスクに確定記録されておらず、障害で失われる可能性があるため、コミットが完了するタイミングではありません。
選択肢 イ
「チェックポイント処理完了時点」は誤りです。チェックポイント処理は、メモリ上のバッファの内容を定期的にディスクのデータベースへ反映して復旧時間を短縮するための別の処理であり、個々のトランザクションのコミットが完了するタイミングとは異なります。メモリ上のバッファ内容を定期的にディスクへ反映して復旧時間を短縮する別の処理であるチェックポイント処理に関する説明であり、個々のトランザクションのコミット完了とは異なります。
選択肢 ウ
「ログバッファへのコミット情報書込み完了時点」は誤りです。ログバッファはメモリ上にあるため、ここに書き込んだだけでは障害発生時にその内容が失われる可能性があります。永続性を保証するには、不揮発性のログファイル(ディスク)への書き込み完了が必要です。ログバッファはメモリ上にあるため、ここに書き込んだだけでは障害発生時に失われる可能性があり、永続性を保証するには不揮発性のログファイルへの書き込み完了が必要です。

解くときのポイント

トランザクションのコミット完了=コミット情報がログファイル(ディスク、不揮発性媒体)へ書き込まれた時点(ログ先書き=WAL)。メモリ上のログバッファへの書き込みやチェックポイント処理とは異なる。永続性の保証が要点。