IPA過去問ドリル

平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

テクノロジ/データベース

厳格な2相ロッキングプロトコルと表ロックを適用して,同時実行している他のトランザクションの処理結果に影響を与えないようにする。実現されるトランザクションの隔離性水準はどれか。

出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

正解:エ

解説

厳格な2相ロッキングプロトコル(トランザクション終了までロックを保持する方式)に加えて表全体をロックすることで,他のトランザクションによるダーティリード・非再現性読取り・ファントムリードの全てを防止できます。これはトランザクションの隔離性水準のうち最も厳しいSERIALIZABLEに相当します。

選択肢ごとの解説

  • 誤り。READ UNCOMMITTEDはロックをほとんど用いず,他のトランザクションの未コミットデータを読み込めてしまう最も緩い水準であり,本問のように影響を完全に遮断する設定とは正反対です。
  • 誤り。READ COMMITTEDはダーティリードは防げますが,非再現性読取りやファントムリードを防ぐことはできず,他のトランザクションの処理結果の影響を完全に排除できません。
  • 誤り。REPEATABLE READはダーティリードと非再現性読取りは防げますが,表ロックを伴わない限りファントムリードが起こり得るため,本問の「表ロック」による完全な遮断の説明としては不十分です。
  • 正しい。厳格な2相ロッキングと表ロックの併用により,ダーティリード,非再現性読取り,ファントムリードの全てが防止され,最も厳しい隔離性水準であるSERIALIZABLEが実現されます。
データベーススペシャリストの過去問を演習モードで解く