DBデータベーススペシャリスト試験 午前Ⅱ
平成30年度春期 データベーススペシャリスト 午前Ⅱ 問13
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア2相コミットでは,サブトランザクションが実行される全てのサイトからコミット了承応答が主サイトに届いても,主サイトはサブトランザクションごとにコミット又はロールバックの異なる指示を出す場合がある。
- イ2相コミットを用いても,サブトランザクションが実行されるサイトに主サイトの指示が届かず,サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
- ウ2相コミットを用いると,サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。
- エ集中型データベースのコミット制御である1相コミットで,分散データベースを構成する個々のサイトが独自にコミットを行っても,サイト間のデータベースの一貫性は保証できる。
解き方のヒントを見る
トランザクション境界の見極め方
処理のまとまりがどこで始まり、どこで終わるかに注目し、途中の失敗や並行実行がデータの一貫性へ与える影響を、実行順序と状態の変化に分けて整理して段階的に考えます。
この問題で問われていること
確認の中心を、境界の前後でデータがどの状態に見えるかという一点に置き、開始・終了・中断の各場面を時系列に並べて、整合性を評価する材料を丁寧に整理してください。
視点
処理を一続きの流れとして眺めるだけでなく、状態が変化する区切りを見つけ、各時点で何が確定し、何が途中なのかを区別して考えます。
確認ポイント
- 処理の開始と終了がどの操作の前後に置かれているか確認する
- 途中で失敗や中断が起きた場合の状態変化を時系列で整理する
- 並行する処理から見える状態と整合性への影響を確認する
正解と解説を見る
正解
イ
解説
2相コミットは、複数サイトの処理を全体としてコミットまたはロールバックするための制御方式です。しかし、準備後に制御役からの最終指示が届かないと、サイトが判断を保留せざるを得ない場合がある。
理由
2相コミットでは、各サイトがコミット可能であることを確認した後、制御役が全体の確定または取消しを指示する。したがって、最終指示が届かないサイトでは、勝手にどちらかを選ぶと全体の整合性を損なうため、コミットかロールバックか分からない状態になることがある。
比較
全サイトが了承しても、トランザクション全体の結果は統一される必要があり、サイトごとに異なる指示は出せない。また、一部がロールバックされたのに全体をコミットすることもなく、各サイトが独自にコミットする1相方式では分散全体の一貫性を保証できない。
選択肢ア
これは不正解だよ。2相コミットは、全サイトの準備結果を踏まえてトランザクション全体をコミットするか、全体をロールバックするかを統一して決める方式である。全サイトから了承応答が届いた場合でも、サブトランザクションごとに異なる指示を出すことはない。
選択肢イ(正解)
これは正解だよ。2相コミットでは、各サイトが準備完了を通知した後、主サイトから最終的なコミットまたはロールバックの指示を受ける。通信障害などでその指示が届かなければ、サイトは勝手に判断できず、どちらを実行すべきか分からない状態になる。
選択肢ウ
これは不正解だよ。2相コミットは複数サイトの結果を統一して確定するための仕組みであり、サブトランザクションの一つでもロールバックされるなら、全体をコミットすることはできない。全体の原子性を保つため、トランザクションもロールバックされる。
選択肢エ
これは不正解だよ。1相コミットで各サイトが独自にコミットすると、あるサイトだけ確定し、別のサイトでは失敗する可能性がある。その場合、サイト間で処理結果が不一致となるため、分散データベース全体の一貫性は保証できない。
学習のポイント
2相コミットの整合性と、通信障害時に発生する待機状態を理解する。
出典:独立行政法人 情報処理推進機構(IPA)平成30年度春期 データベーススペシャリスト試験 午前Ⅱ 問13(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針