平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
テクノロジ/データベース厳格な2相ロッキングプロトコルと表ロックを適用して,同時実行している他のトランザクションの処理結果に影響を与えないようにする。実現されるトランザクションの隔離性水準はどれか。
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
- アREAD UNCOMMITTED
- イREAD COMMITTED
- ウREPEATABLE READ
- エSERIALIZABLE
正解:エ
解説
厳格な2相ロッキングプロトコル(トランザクション終了までロックを保持する方式)に加えて表全体をロックすることで,他のトランザクションによるダーティリード・非再現性読取り・ファントムリードの全てを防止できます。これはトランザクションの隔離性水準のうち最も厳しいSERIALIZABLEに相当します。
選択肢ごとの解説
- ア誤り。READ UNCOMMITTEDはロックをほとんど用いず,他のトランザクションの未コミットデータを読み込めてしまう最も緩い水準であり,本問のように影響を完全に遮断する設定とは正反対です。
- イ誤り。READ COMMITTEDはダーティリードは防げますが,非再現性読取りやファントムリードを防ぐことはできず,他のトランザクションの処理結果の影響を完全に排除できません。
- ウ誤り。REPEATABLE READはダーティリードと非再現性読取りは防げますが,表ロックを伴わない限りファントムリードが起こり得るため,本問の「表ロック」による完全な遮断の説明としては不十分です。
- エ正しい。厳格な2相ロッキングと表ロックの併用により,ダーティリード,非再現性読取り,ファントムリードの全てが防止され,最も厳しい隔離性水準であるSERIALIZABLEが実現されます。