平成30年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21
テクノロジ/データベースDBMS がトランザクションのコミット処理を完了とするタイミングはどれか。
出典:平成30年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21
- アアプリケーションの更新命令完了時点
- イチェックポイント処理完了時点
- ウログバッファへのコミット情報書込み完了時点
- エログファイルへのコミット情報書込み完了時点
正解:エ
解説
DBMS は,トランザクションのコミット処理において,データの整合性と耐障害性(ACID 特性の一つである永続性)を保証するために,実際のデータファイルへの更新を反映する前に,コミット情報を含む更新履歴をログファイルに書き込みます。このログファイルへのコミット情報の書込みが完了した時点で,たとえその直後にシステム障害が発生してデータファイル自体への反映が未了であっても,ログ情報をもとにロールフォワードして更新内容を復元できるため,DBMS はこの時点でコミット処理が完了したものとして扱います。ログバッファへの書込みだけでは,ログファイルへ実際に書き込まれる前に障害が起きると内容が失われる可能性があるため,コミットの完了とはみなされません。
選択肢ごとの解説
- ア誤り。アプリケーションが更新命令を発行した時点は,DBMS 内部でのログ書込みなどの永続化がまだ完了していない可能性があり,コミット処理の完了タイミングではありません。
- イ誤り。チェックポイント処理は,その時点までにコミットされた更新内容をデータファイルに反映し,障害回復に要する時間を短縮するための処理であり,個々のトランザクションのコミット完了のタイミングとは異なります。
- ウ誤り。ログバッファへの書込みは,まだディスク上のログファイルに書き込まれていないため,障害発生時に内容が失われるおそれがあり,コミット処理の完了とはみなされません。
- エ正しい。ログファイルへコミット情報が書き込まれ,障害が発生しても復旧できる状態になった時点で,DBMS はコミット処理を完了とします。