令和3年度 秋期 午前Ⅱ 問12
トランザクション処理
分散データベースに関する問題
分散データベースのトランザクションが複数のサブトランザクションに分割され,複数のサイトで実行されるとき,トランザクションのコミット制御に関する記述のうち,適切なものはどれか。
- ア2 相コミットでは,サブトランザクションが実行される全てのサイトからコミット了承応答が主サイトに届いても,主サイトはサブトランザクションごとにコミット又はロールバックの異なる指示を出す場合がある。
- イ2 相コミットを用いても,サブトランザクションが実行されるサイトに主サイトの指示が届かず,サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
- ウ2 相コミットを用いると,サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。
- エ集中型データベースのコミット制御である 1 相コミットで,分散データベースを構成する個々のサイトが独自にコミットを行っても,サイト間のデータベースの一貫性は保証できる。
答えと解説を見る
✓ これが正解イ2 相コミットを用いても,サブトランザクションが実行されるサイトに主サイトの指示が届かず,サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
解説
2 相コミットでも、主サイトの指示が届かず判断できないサイトが生じ得ます。
2 相コミットでは、主サイトがまず各サイトにコミットの準備ができたかを問い合わせ、全てのサイトから了承の応答がそろったらコミットを、一つでも否の応答があればロールバックを、全サイトに同じ内容で指示します。準備ができたと応答したサイトは、その後は自分だけでコミットもロールバックも決められず、主サイトの指示を待つ状態になります。このとき主サイトの障害や通信の断絶で指示が届かないと、そのサイトはどちらにすべきか分からないまま待ち続けることになります。この弱点が残る、という記述が適切です。2 相コミットは全サイトの結果を一つにそろえる代わりに、指示待ちの間は自分で決められない、と押さえておくと見分けられます。
ほかの選択肢はなぜ違うのか
- ア2 相コミットでは,サブトランザクション…:全てのサイトから了承応答が届いた場合、主サイトは全サイトに同じコミットの指示を出します。サイトごとにコミットとロールバックを分けて指示すると、サイト間でデータの状態が食い違うので、2 相コミットの目的に反します。
- ウ2 相コミットを用いると,サブトランザク…:2 相コミットでは、一つでもサブトランザクションがロールバックされるなら、トランザクション全体をロールバックします。一部だけ取り消して全体をコミットすることは、全サイトの結果をそろえるという仕組みの趣旨と合いません。
- エ集中型データベースのコミット制御である …:各サイトが独自にコミットすると、あるサイトはコミット済み、別のサイトは失敗して取り消し、という食い違いが生じ得ます。サイト間の一貫性を保つために、全サイトの合意を取ってから確定させる 2 相コミットが用いられます。
この問題の用語
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問12
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問15:隔離性水準に関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問14:べき等に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)