平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
テクノロジ/データベースシステム障害発生時には,データベースの整合性を保ち,かつ,最新のデータベース状態に復旧する必要がある。このために,DBMSがトランザクションのコミット処理完了とみなすタイミングとして,適切なものはどれか。
出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
- アアプリケーションの更新命令完了時点
- イチェックポイント処理完了時点
- ウログバッファへのコミット情報書込み完了時点
- エログファイルへのコミット情報書出し完了時点
正解:エ
解説
DBMSは,トランザクションがコミットされたと利用者に応答してよいのは,そのトランザクションの更新内容がシステム障害(電源断など)が発生しても失われないことが保証された時点,すなわちコミット情報(コミットレコード)がログファイルという不揮発性の媒体に実際に書き出された時点である。アプリケーションの更新命令の完了や,メモリ上にすぎないログバッファへの書込みだけでは,その後の障害でデータが失われる可能性があり,コミット完了とはみなせない。
選択肢ごとの解説
- ア誤り。アプリケーションの更新命令が完了しただけでは,その内容がまだログファイルに書き出されておらず,障害発生時に失われる可能性があるため,コミット処理完了とはみなせない。
- イ誤り。チェックポイント処理は,一定間隔でバッファの内容をデータベースに反映する処理であり,個々のトランザクションのコミットのタイミングとは直接関係がない。
- ウ誤り。ログバッファは主記憶上の領域であり,そこに書き込まれただけでは,システム障害(電源断など)によって内容が失われる可能性があるため,コミット処理完了とはみなせない。
- エ正しい。コミット情報がログファイル(不揮発性の記憶媒体)に実際に書き出された時点で,その後システムに障害が発生してもログを使って更新内容を復旧できることが保証されるため,この時点をコミット処理完了とみなす。