令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問14
テクノロジ/データベース同時実行制御の手法の一種である楽観的制御法に関する記述として,適切なものはどれか。
出典:令和2年度 10月 データベーススペシャリスト試験 午前Ⅱ 問14
- アデータに対して順序付けを行い,その順序に従ってロックを掛ける。
- イデータに対してのロックは行わずに,更新対象のデータが他のトランザクションと競合がなかったことを確認してからコミットを行う。
- ウ分散データベースシステムにおいて,コミット可否の問合せをした上で,コミット指示を行う。
- エロックが増加していく成長フェーズである第1相と,ロックが減少していく縮退フェーズである第2相の2相制御を行う。
正解:イ
解説
楽観的制御法(楽観的同時実行制御)は,データにロックを掛けずにトランザクションを実行し,コミットしようとする直前に,実行中の更新対象データが他のトランザクションによって変更されていないか(競合が発生していないか)を検査し,競合がなければコミットするという方式です。ロックを使わないためロック待ちによるオーバーヘッドを避けられる反面,競合が検出された場合はロールバックして再試行する必要があります。
選択肢ごとの解説
- ア誤り。データに順序付けを行い,その順序に従ってロックを掛ける方式は,デッドロックの発生を防止するためのロック順序制御の説明であり,ロックを用いない楽観的制御法の説明ではありません。
- イ正しい。楽観的制御法は,データに対するロックを行わずにトランザクションを実行し,コミットの直前に他のトランザクションとの競合の有無を確認してから,競合がなければコミットを行う方式です。
- ウ誤り。分散データベースシステムにおいてコミット可否の問合せをした上でコミット指示を行う方式は,2相コミットプロトコルの説明です。
- エ誤り。ロックが増加する成長フェーズとロックが減少する縮退フェーズの2相から成る制御は,2相ロック方式の説明であり,ロックを用いない楽観的制御法とは異なります。