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

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

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

問題

分散データベースのトランザクションは複数のサブトランザクションに分割され,複数のサイトで実行される。このとき,トランザクションのコミット制御に関する記述のうち,適切なものはどれか。

選択肢

  1. ア
    2相コミットでは,全てのサブトランザクションからコミット了承応答が届いても,必ずしも全てのサブトランザクションをコミットするとは限らない。
  2. イ
    2相コミットを用いても,サブトランザクションが実行されるサイトに主サイトの指示が届かず,サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
  3. ウ
    2相コミットを用いると,サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。
  4. エ
    集中型データベースのコミット制御である1相コミットで,個々のサイトが独自に分散データベースのコミットを行っても,サイト間のデータベースの一貫性は保証できる。
解き方のヒントを見る

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

トランザクションの開始点と終了点に注目し、ひとまとまりの処理として扱う範囲、途中で状態が変わる場面、処理後に確認すべき整合性を整理して考えます。関連する操作同士の結び付きにも目を向けましょう。

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

一連の操作のどこまでを同じ単位として捉えるかに絞り、処理の途中・完了時・失敗時で、データの関係性を確認する観点を分けて整理してください。各操作の目的にも注目しましょう。

視点

トランザクションは、複数の操作を一つの処理単位として捉えるための考え方です。境界を考えるときは、利用者から見た一つの目的と、データに影響する操作のまとまりが対応しているかを確認します。

確認ポイント

  • 処理の開始と終了がどこに置かれているか
  • 途中の操作同士にどのような目的上の結び付きがあるか
  • 処理の各段階でデータ間の関係を確認できるか
正解と解説を見る

正解

イ

解説

二相コミットは複数サイトの処理結果を整合させる仕組みだが,最終指示の伝達に失敗すると参加サイトが判断できない状態に留まることがある。

理由

二相コミットでは,まず各サブトランザクションがコミット可能かを確認し,主サイトが全体の結果に基づいてコミット又はロールバックを決定する。しかし,決定後の指示がサイトへ届かないと,そのサイトは自律的に最終状態を確定できない場合がある。

比較

全サイトがコミット了承を返した場合でも,それは準備が整ったことを示す応答であり,最終コミットの実行通知そのものではありません。一方,どこかでロールバックが必要なら,全体をコミットしてはならず,独立したサイト判断だけでは一貫性を保証できない。

選択肢ア

これは不正解だよ。コミット了承応答は,各サブトランザクションがコミット可能な状態になったことを示す。主サイトはその結果を受けて全体のコミットを決定し,決定内容を各サイトへ通知するため,了承後に必ずしもコミットしないという説明は二相コミットの手順と一致しない。

選択肢イ(正解)

これは正解だよ。二相コミットでは,各サイトから準備完了の応答を集めても,その後に主サイトが送る最終指示が通信障害などで届かないことがある。その場合,サブトランザクション側はコミットとロールバックのどちらを実行すべきか判断できず,不確定な状態に留まる。

選択肢ウ

これは不正解だよ。二相コミットは複数サイトの処理を原子的に扱い,いずれかのサブトランザクションをロールバックするなら,全体もコミットさせないよう制御する。サブトランザクションのロールバック後に全体をコミットする場合があるという説明は,この一貫性の考え方に反する。

選択肢エ

これは不正解だよ。集中型データベース向けの一相コミットを分散環境へそのまま適用し,各サイトが独自にコミットすると,サイトごとに処理結果が分かれる可能性がある。複数サイトの更新を同一の結果にそろえるには,サイト間を調整するコミット制御が必要である。

学習のポイント

準備応答と最終決定通知の違いを理解し,分散環境の通信障害による不確定状態を学ぶ。

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

関連する過去問一覧

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