応用情報技術者 2010年 秋期 午前2 問30
問題文
分散データベースシステムにおいて、一連のトランザクション処理を行う複数サイトに更新処理が確定可能かを問い合わせ、すべてのサイトの更新処理が確定可能である場合、更新処理を確定する方式はどれか。
選択肢
ア:2相コミット(正解)
イ:排他制御
ウ:ロールバック
エ:ロールフォワード
分散データベースシステムの更新処理確定方式【午前2 解説】
要点まとめ
- 結論:複数サイトの更新処理を一括で確定するには「2相コミット方式」が用いられます。
- 根拠:2相コミットは全サイトの準備完了を確認後、一斉に確定または中止を決定する分散トランザクション管理の標準手法です。
- 差がつくポイント:単なる排他制御やロールバック・ロールフォワードは更新確定の同期を保証しないため、分散環境での一貫性維持には不十分です。
正解の理由
ア: 2相コミットは、分散データベースで複数サイトのトランザクションを一貫して確定させるためのプロトコルです。まず「準備フェーズ」で全サイトに更新処理の準備ができているか問い合わせ、全てが「確定可能」と回答した場合に「確定フェーズ」で一斉に更新を確定します。これにより、どこかのサイトだけが更新される不整合を防ぎます。
よくある誤解
排他制御は同時実行制御の手法であり、更新の確定可否を調整するものではありません。ロールバックやロールフォワードは障害時の復旧手段であり、更新確定の同期とは異なります。
解法ステップ
- 問題文の「複数サイトに更新処理が確定可能か問い合わせる」点に注目する。
- 更新処理の確定を全サイトで同期的に行う方式を考える。
- 選択肢の中で「2相コミット」が分散トランザクションの確定方式であることを確認。
- 他の選択肢が更新確定の同期に関係しないことを理解し、2相コミットを選択。
選択肢別の誤答解説
- イ: 排他制御
同時実行制御の一種であり、更新の確定可否を問い合わせる方式ではありません。 - ウ: ロールバック
トランザクションの取り消し処理であり、確定処理の方式ではありません。 - エ: ロールフォワード
障害復旧時にログを使って更新を再適用する手法で、確定処理とは異なります。
補足コラム
2相コミット方式は「準備フェーズ」と「確定フェーズ」の2段階で処理を行い、分散環境でのデータ整合性を保ちます。ただし、ネットワーク障害時にブロックが発生しやすいという欠点もあります。これを改善するために3相コミットなどの拡張方式も存在します。
FAQ
Q: 2相コミット方式はどのような場面で使われますか?
A: 複数のデータベースサイトにまたがるトランザクションで、一貫性を保ちながら更新を確定する際に使われます。
A: 複数のデータベースサイトにまたがるトランザクションで、一貫性を保ちながら更新を確定する際に使われます。
Q: 排他制御と2相コミットの違いは何ですか?
A: 排他制御は同時実行時の競合を防ぐ技術で、2相コミットは分散トランザクションの確定を同期的に行うプロトコルです。
A: 排他制御は同時実行時の競合を防ぐ技術で、2相コミットは分散トランザクションの確定を同期的に行うプロトコルです。
関連キーワード: 分散トランザクション、2相コミット、データベース整合性、トランザクション管理、同期確定

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

