DBデータベーススペシャリスト試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    アプリケーションの更新命令完了時点
  2. イ
    チェックポイント処理完了時点
  3. ウ
    ログバッファへのコミット情報書込み完了時点
  4. エ
    ログファイルへのコミット情報書出し完了時点
解き方のヒントを見る

トランザクション境界の見極め

複数の処理をひとまとまりとして考えるとき、どこからどこまでを一つの単位とみなすかに注目し、途中で中断や失敗が起きた場合に、データの状態をどの観点で確認するかを整理しましょう。

この問題で問われていること

確認の中心は、処理の開始・完了・失敗の各時点で、利用者から見えるデータの状態がどのように扱われるべきかという境界の捉え方です。関連する処理のまとまりを見比べましょう。

視点

トランザクションを考える際は、処理のまとまり、確定や取り消しの契機、途中状態の扱いを分けて整理します。個々の操作だけでなく、全体として一貫した状態を保てるかを観点にします。

確認ポイント

  • 一連の操作の開始点と終了点を区別する
  • 途中で失敗した場合の状態を確認する
  • 処理全体の一貫性に注目する
正解と解説を見る

正解

エ

解説

コミット完了とみなすには、障害が発生してもコミット済みの更新を復旧できるよう、コミット情報がログファイルへ書き出されている必要がある。

理由

DBMSは、コミット済みトランザクションの更新を障害後にも復旧できなければならない。そのため、コミット情報が揮発性の領域に残っているだけでは不十分で、ログファイルへの書出し完了を基準とする。

比較

アプリケーションの更新命令完了やログバッファへの書込みは、まだDBMS内部の処理途中です。チェックポイントは復旧を効率化する処理であり、個々のコミット完了そのものを示す時点ではありません。

選択肢ア

これは不正解だよ。アプリケーションの更新命令が完了しても、DBMSがコミット情報を障害後に利用できる形で保存したとは限らない。命令完了は処理要求の終了を示すだけで、復旧可能性を保証するログ書出しの完了時点とは異なる。

選択肢イ

これは不正解だよ。チェックポイントはデータベースの状態を整理し、障害回復を効率化するための処理である。しかし、チェックポイント処理完了は各トランザクションのコミット情報が保存された時点を直接示さないため、コミット完了の基準にはならない。

選択肢ウ

これは不正解だよ。ログバッファへのコミット情報書込みが終わっても、情報はまだ一時的なバッファ上にあり、障害によって失われる可能性がある。障害後の復旧に必要な情報が永続的に保持されたとはいえないため、この時点では不十分である。

選択肢エ(正解)

これは正解だよ。ログファイルへのコミット情報書出しが完了すれば、障害発生後にログを参照してコミット済みの更新を復旧できる。データベースの整合性を保ちつつ、最新のコミット状態へ戻すための基準として適切である。

学習のポイント

トランザクション処理では、ログの永続化と障害回復の関係を理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成24年度春期 データベーススペシャリスト試験 午前Ⅱ 問14(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針