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