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

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

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

問題

分散データベースシステムにおいて,複数のデータベースを更新する場合に用いられる2相コミットの処理手順として,適切なものはどれか。

選択肢

  1. ア
    主サイトが各データベースサイトにコミット準備要求を発行した場合,各データベースサイトは,準備ができていない場合だけ応答を返す。
  2. イ
    主サイトは,コミットが可能であることを各データベースサイトに確認した後,コミットを発行する。
  3. ウ
    主サイトは,各データベースサイトにコミットを発行し,コミットが失敗した場合には,再度コミットを発行する。
  4. エ
    主サイトは,各データベースサイトのロックに成功した後,コミットを発行し,各データベースサイトをアンロックする。
解き方のヒントを見る

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

処理のどこを一つのまとまりとして捉えるかに注目し、途中で起こり得る状態の変化と、処理後に保つべきデータの関係を整理してから、各記述の前提を丁寧に読み比べましょう。

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

確認する観点を、処理の開始・途中・終了という時間の区切りと、各段階でデータに期待される関係の保たれ方に絞りましょう。個別の用語の定義だけでなく、境界をどこに置くかという前提を丁寧に読み取ることが重要です。

視点

取引を一連の操作として眺めるときは、開始点と終了点を仮置きし、その内側で状態が変わる場面、外側へ影響が及ぶ場面、失敗時に観察される範囲を分けて整理します。整合性は、関連するデータ同士の関係がどの時点で評価されるかという観点で捉えましょう。

確認ポイント

  • 処理のまとまりをどの範囲として捉えているか確認する
  • 状態の変化を開始・途中・終了に分けて整理する
  • データ同士の関係を評価する時点に注目する
正解と解説を見る

正解

イ

解説

2相コミットでは,主サイトが各データベースサイトにコミット準備を要求し,全サイトがコミット可能であることを確認した後に,コミットを指示して更新を確定させる。

理由

2相コミットは,まず参加する各データベースサイトに準備ができたかを確認し,全サイトの準備が整った場合にコミットを実行する。これにより,複数サイトの更新結果を一貫して確定させる。

比較

準備要求への応答を限定したり,失敗後に単純再実行したり,ロック取得を中心に説明したりする手順は,2相コミットの基本的な処理順序を表していない。

選択肢ア

これは不正解だよ。準備要求を受けた各データベースサイトは,自分が準備できたかどうかを主サイトへ応答する必要がある。準備できていない場合だけ応答するのでは,正常に準備できたサイトの状態を主サイトが確認できず,確定判断を適切に行えない。

選択肢イ(正解)

これは正解だよ。2相コミットでは,主サイトが各データベースサイトへコミット準備要求を送り,各サイトがコミット可能であることを確認してから,最終的なコミットを指示する。この準備確認と確定指示を分ける手順が適切である。

選択肢ウ

これは不正解だよ。主サイトが先に各データベースサイトへコミットを発行し,失敗したら再度発行するという手順では,サイトごとの確定状態がそろわない可能性がある。2相コミットは,事前の準備確認を経てから確定処理を行う。

選択肢エ

これは不正解だよ。2相コミットの中心は,各データベースサイトのロック取得を確認してからコミットすることではなく,コミット準備が整ったかを確認してから確定指示を出すことである。ロックとアンロックだけで処理手順を説明している点が適切でない。

学習のポイント

準備確認後に確定処理へ進むという2相コミットの基本手順を理解する。

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

関連する過去問一覧

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