平成24年度 春期 データベーススペシャリスト試験 午前II 問13
【問題13】
デッドロックが発生する可能性のある排他制御の方法はどれか。
時刻印を用いて、トランザクションの優先順位を決める方法
全てのトランザクションにおいて、ロック対象のデータは一定の順序でロックを行い、全てのロックが完了するまで、アンロックを行わない方法
トランザクション開始時に一括してロックする方法
【解説】
ア: 2相ロックプロトコルに従ってロックする方法
正しい。2相ロックプロトコルでは、トランザクションが必要なリソースをすべてロックするまでアンロックを開始できないため、デッドロックが発生する可能性があります。
イ: 時刻印を用いて、トランザクションの優先順位を決める方法
誤り。時刻印方式では、トランザクション開始時に優先順位を決め、ロック競合が生じた場合には時刻印で優先順位を決定するため、デッドロックは発生しません。
ウ: 全てのトランザクションにおいて、ロック対象のデータは一定の順序でロックを行い、全てのロックが完了するまで、アンロックを行わない方法
誤り。資源の占有順序が統一されているため、デッドロックが発生することはありません。この方法はデッドロック回避に有効です。
エ: トランザクション開始時に一括してロックする方法
誤り。一括ロック方式では、トランザクション開始時にすべてのリソースをロックしますが、これによりデッドロックは発生しません。ただし、同時実行性が大きく制限されるため、効率が悪くなります。
【答え】
ア: 2相ロックプロトコルに従ってロックする方法
出典:平成24年度 春期 データベーススペシャリスト試験 午前II 問13