平成29年 春期 データベーススペシャリスト 午前II 問14

データベース更新における2相コミットに関する記述のうち、適切なものはどれか。

 ア  2相コミットは、トランザクションの処理途中のデータを他のトランザクションから参照できなくする制御方式のことである。
 イ  2相コミットを行うためには、同時に更新しようとする分散データベースがすべて更新可能かどうかを判断するためのやり取りが必要である。
 ウ  2相コミットを採用した場合、ロールバックは発生しない。
 エ  2相コミットを使えば、通信異常が発生しても、トランザクションをコミットさせることができる。


答え イ


解説

 ア  トランザクションの処理途中のデータを他のトランザクションから参照できなくする制御方式は、排他制御です。
 イ  2相コミットを行うためには、同時に更新しようとする分散データベースがすべて更新可能かどうかを判断するためのやり取りが必要です。
 ウ  2相コミットを採用した場合、参加者(分散データベース)からコミット不可が返ってくるとロールバックが発生します。
 エ  2相コミットを使っても、通信異常によりタイムアウトが発生すると、トランザクションをコミットさせることができず、ロールバックします。


キーワード
・コミット
・2相コミットプロトコル

キーワードの解説
  • コミット(commit)
    データベースにおいて、データベース操作処理(トランザクション)による、データベースの内容変更を恒久的なものとして確定させることです。
    ロールバック処理は、変更した内容を最後にコミットしたところまで、ジャーナルデータに基いて戻す処理になります。
    ロールフォワード処理は、最後にコミットしたところから、ジャーナルデータに基いて処理を行うことです。
  • 2相コミットプロトコル(Two-Phase Commit Protocol)
    分散システムにおいて、全データベースがトランザクション終了時に同時にコミットするための手順のことです。
    2相コミットプロトコルでは、まず処理全体を管理する調停者が、参加者に対し、コミットが行えるか問い合わせ(フェーズ1)、全ての参加者から「準備完了」の応答があったら、コミットを行うことを参加者に要求(フェーズ2)し、コミットが行われる。
    参加者のどれかで問題が発生した場合には、ロールバック処理で処理の撤回を行う。

もっと、「2相コミット」について調べてみよう。

戻る 一覧へ 次へ