IPA過去問ドリル

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

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

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

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

正解:エ

解説

DBMSは,障害発生時にもデータベースの整合性を保ち,かつ最新の状態に復旧できるようにするため,トランザクションのコミット処理は,そのコミット情報(ログレコード)が不揮発性の記憶媒体であるログファイルへ書き込まれた(フラッシュされた)時点をもって完了したとみなす。これは,先行書き込み(write-ahead logging)の原則に基づくものであり,ログバッファに書き込んだだけでは,電源断などによりその内容が失われる可能性があるため,コミット完了とはみなされない。

選択肢ごとの解説

  • 誤り。アプリケーションが更新命令を発行した時点では,まだその内容がログとして永続化されていないため,障害時に失われる可能性があり,コミット完了とはみなせない。
  • 誤り。チェックポイント処理は,一定時点までの更新内容をデータベースに反映し,障害回復に要する時間を短縮するための定期的な処理であり,個々のトランザクションのコミット完了のタイミングとは異なる。
  • 誤り。ログバッファはメモリ上の一時的な領域であり,そこに書き込んだだけでは電源断などの障害によって内容が失われる可能性があるため,コミット完了とはみなせない。
  • 正しい。コミット情報が不揮発性のログファイルへの書込みまで完了した時点で,初めてそのコミットが障害によっても失われないことが保証されるため,DBMSはこの時点をコミット処理完了とみなす。
データベーススペシャリストの過去問を演習モードで解く