平成24年度 春期 データベーススペシャリスト試験 午前II 問12
【問題12】
分散データベースのトランザクションは複数のサブトランザクションに分割され、複数のサイトで実行される。このとき、トランザクションのコミット制御に関する記述のうち、適切なものはどれか。
2相コミットでは、全てのサブトランザクションからコミット了承応答が届いても、必ずしも全てのサブトランザクションをコミットするとは限らない。
2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
2相コミットを用いると、サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。
集中型データベースのコミット制御である1相コミットで、個々のサイトが独自に分散データベースのコミットを行っても、サイト間のデータベースの一貫性は保証できる。
【解説】
ア: 2相コミットでは、全てのサブトランザクションからコミット完了承認が届いても、必ずしも全てのサブトランザクションをコミットするとは限らない。
誤り。2相コミットでは、全てのサブトランザクションから承認が得られた場合にのみ、全体のトランザクションがコミットされます。
イ: 2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
正しい。主サイトからサブトランザクションへの指示が届かない場合、ロールバックかコミットかの判断ができないことがあります。
ウ: 2相コミットを用いると、サブトランザクションがロールバックされてもトランザクションがコミットされる場合がある。
誤り。2相コミットでは、サブトランザクションがロールバックされた場合は、全体のトランザクションもロールバックされます。
エ: 集中型データベースのコミット制御である1相コミットで、個々のサイトが独自に分散データベースのコミットを行っても、サイト間のデータベースの一貫性は保証できる。
誤り。1相コミットでは、個々のサイトが独自にコミットすることは、サイト間のデータの一貫性を保証することができません。
【答え】
イ: 2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
出典:平成24年度 春期 データベーススペシャリスト試験 午前II 問12