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