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

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

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

問題

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

選択肢

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

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

処理のまとまりを捉えるときは、個々の操作だけでなく、どこからどこまでを一つの単位として扱うかに注目し、状態の変化と整合性への影響を順に整理しましょう。

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

一連の処理の開始点と終了点を確認し、その境界によって操作のまとまりや途中状態の扱いがどう変わるかを比較して考えてください。

視点

各操作を時系列に並べ、処理の単位として区切られている範囲、途中で状態が変わる箇所、他の処理との関係を整理すると、整合性を検討する材料を作れます。

確認ポイント

  • 処理のまとまりはどこからどこまでか
  • 境界の前後で状態の扱いはどう整理できるか
  • 途中の操作が他の処理へ与える影響は何か
正解と解説を見る

正解

イ

解説

2相コミットは、分散したサブトランザクションの結果を全体として統一するための方式です。ただし、最終指示の伝達前に通信障害が起きると、参加サイトが確定判断をできない状態になることがある。

理由

2相コミットでは、主サイトが参加サイトの準備状況を確認した後、全体としてコミットまたはロールバックする判断を伝える。全体の一貫性を保つため、サブトランザクションごとに異なる最終指示を出す方式ではありません。

比較

一方、参加サイトが最終指示を受け取る前に主サイトとの通信が途絶えると、参加サイトは処理を確定すべきか取り消すべきか判断できない場合がある。この点が2相コミットの障害時の特徴です。

選択肢ア

これは不正解だよ。2相コミットは、分散したサブトランザクションを全体として同じ結果に確定させるための制御方式である。全サイトから了承応答が届いた場合でも、主サイトがサブトランザクションごとに異なるコミットやロールバックを指示することはなく、全体で統一した結果を指示する。

選択肢イ(正解)

これは正解だよ。2相コミットでは、主サイトが全体の結果を決定して参加サイトへ指示する。しかし、その指示が通信障害などで届かないと、参加サイトはコミットすべきかロールバックすべきかを判断できない状態になる場合がある。

選択肢ウ

これは不正解だよ。2相コミットは、各サブトランザクションの結果をばらばらに扱うのではなく、トランザクション全体の原子性を保つために使われる。したがって、サブトランザクションがロールバックされたのに、全体だけがコミットされるような結果は認められない。

選択肢エ

これは不正解だよ。集中型データベースの1相コミットは、単一の管理対象を前提とする制御であり、複数サイトが独自にコミットする分散環境の調整には適さない。各サイトが別々に判断すると、サイト間で結果が食い違い、一貫性を保証できない。

学習のポイント

2相コミットの目的と、通信障害時に発生する不確定状態を理解する。

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

関連する過去問一覧

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