IPA過去問ドリル

平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

テクノロジ/データベース

システム障害発生時には,データベースの整合性を保ち,かつ,最新のデータベース状態に復旧する必要がある。このために,DBMSがトランザクションのコミット処理完了とみなすタイミングとして,適切なものはどれか。

出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

正解:エ

解説

DBMSは,トランザクションがコミットされたと利用者に応答してよいのは,そのトランザクションの更新内容がシステム障害(電源断など)が発生しても失われないことが保証された時点,すなわちコミット情報(コミットレコード)がログファイルという不揮発性の媒体に実際に書き出された時点である。アプリケーションの更新命令の完了や,メモリ上にすぎないログバッファへの書込みだけでは,その後の障害でデータが失われる可能性があり,コミット完了とはみなせない。

選択肢ごとの解説

  • 誤り。アプリケーションの更新命令が完了しただけでは,その内容がまだログファイルに書き出されておらず,障害発生時に失われる可能性があるため,コミット処理完了とはみなせない。
  • 誤り。チェックポイント処理は,一定間隔でバッファの内容をデータベースに反映する処理であり,個々のトランザクションのコミットのタイミングとは直接関係がない。
  • 誤り。ログバッファは主記憶上の領域であり,そこに書き込まれただけでは,システム障害(電源断など)によって内容が失われる可能性があるため,コミット処理完了とはみなせない。
  • 正しい。コミット情報がログファイル(不揮発性の記憶媒体)に実際に書き出された時点で,その後システムに障害が発生してもログを使って更新内容を復旧できることが保証されるため,この時点をコミット処理完了とみなす。
データベーススペシャリストの過去問を演習モードで解く