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