IPA公式正解:エ SERIALIZABLE
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。厳格な2相ロッキング(Strict 2PL)と表ロックを併用すると、更新・参照した表全体をトランザクション終了時までロックするため、ファントムリードを含むすべての並行性異常が防止され、SERIALIZABLEが実現されます。
【詳細解説】■ 本問の核心・解法のポイント
SQLのトランザクション分離レベル(隔離性水準)とロックプロトコル・ロック粒度の関係を問う問題です。厳格な2相ロッキング(Strict 2PL)では、取得したロック(特に排他ロックや共有ロック)をトランザクション終了(コミットまたはアボート)まで保持します。さらに行ロックではなく「表ロック」を適用することで、同一条件に合致する新たな行が挿入される「ファントムリード(Phantom Read)」も完全に防ぐことができます。これにより、最高水準であるSERIALIZABLEが達成されます。
・各選択肢の徹底解説:
・ア:READ UNCOMMITTEDは未コミットの変更を読み取れる(ダーティリードが発生する)最も低い水準です。
・イ:READ COMMITTEDはコミット済みデータのみを読み取れますが、ファジーリードやファントムリードが発生します。
・ウ:REPEATABLE READは同一トランザクション内で同じ行を繰り返し読み出した場合の値の一致を保証しますが、行ロックだけではファントムリードを防げない場合があります。
・エ:【選択肢エ★】表ロックをStrict 2PLで適用することで、ダーティリード、ファジーリード、ファントムリードのすべてが完全に排除され、最も厳格な「SERIALIZABLE(直列化可能)」が実現されます。
よって正解はエです。