IPA過去問ドリル

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

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

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

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

正解:エ

解説

障害が発生してもデータベースを最新の整合性のとれた状態に復旧できるようにするため,DBMSは,更新内容をログファイルに書き出す処理(ログの先行書込み,WAL)が完了した時点をもって,トランザクションのコミット処理完了とみなします。実データへの反映(実更新)がまだ完了していなくても,ログさえ書き出されていれば,障害発生後にREDOによって最新の状態に復旧できるためです。

選択肢ごとの解説

  • 誤り。すべての更新データの実更新(データベースファイルへの反映)を待ってからコミット完了とすると,コミットの応答が遅くなり,性能上も好ましくありません。
  • 誤り。チェックポイント処理の完了は,ログ量削減や障害回復時間の短縮のための仕組みであり,個々のトランザクションのコミット完了のタイミングとは異なります。
  • 誤り。ログバッファへの書込みだけでは,障害(電源断など)によってバッファの内容が失われる可能性があり,コミット完了とはみなせません。
  • 正しい。ログファイル(不揮発性の記憶媒体)への書出しが完了した時点で,障害が発生してもREDOによって更新内容を復元できるため,DBMSはこの時点をコミット処理完了とみなします。
データベーススペシャリストの過去問を演習モードで解く