令和2年度 10月 情報処理安全確保支援士試験 午前Ⅱ 問21
テクノロジ/データベースDBMS がトランザクションのコミット処理を完了するタイミングはどれか。
出典:令和2年度 10月 情報処理安全確保支援士試験 午前Ⅱ 問21
- アアプリケーションプログラムの更新命令完了時点
- イチェックポイント処理完了時点
- ウログバッファへのコミット情報書込み完了時点
- エログファイルへのコミット情報書込み完了時点
正解:エ
解説
DBMS におけるコミット処理は,トランザクションで行った更新内容を確定させ,障害が発生してもその更新内容が失われないこと(耐久性)を保証する処理です。このため,コミット処理は,更新後のログ情報がログバッファ上に置かれているだけでは完了とはみなされず,そのログ情報が不揮発性の記憶媒体上のログファイルへ実際に書き込まれた時点で完了したとみなされます。ログファイルへの書込みが完了していれば,たとえその後にシステム障害が発生してデータベース本体への反映が終わっていなくても,ログを用いてロールフォワードすることで更新内容を復元できるためです。
選択肢ごとの解説
- ア誤り。アプリケーションプログラムの更新命令が完了した時点では,その更新内容がログファイルに書き込まれ永続化されたとは限らないため,コミット処理の完了時点とはいえません。
- イ誤り。チェックポイント処理は,一定間隔でバッファの内容をディスクに反映し障害回復の起点を記録する処理であり,個々のトランザクションのコミット処理の完了タイミングとは異なります。
- ウ誤り。ログバッファへの書込みは,メモリ上の一時的な記録であり,システム障害(電源断など)が発生するとバッファの内容は失われる可能性があるため,コミット処理の完了時点とはいえません。
- エ正しい。ログファイルへのコミット情報書込みが完了した時点で,DBMS はトランザクションのコミット処理を完了したとみなします。