令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問15
テクノロジ/データベーストランザクション T1,T2 を同時実行した際に,次の異状を防ぐことができるトランザクションの隔離性水準のうち,最も水準の低いものはどれか。 〔異状〕 T1 が同じデータを複数回読み込んでいる途中で,T2 がそのデータを更新してコミットしたことによって,T1 が更新していないのにもかかわらず T1 が読み込むデータが変わってしまう。
出典:令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問15
- アREAD COMMITTED
- イREAD UNCOMMITTED
- ウREPEATABLE READ
- エSERIALIZABLE
正解:ウ
解説
設問の異状は,同一トランザクション内で同じデータを複数回読み込む間に,他のトランザクションがそのデータを更新・コミットすることで読み込み結果が変わってしまう“反復不能読取り(non-repeatable read)”です。この異状を防止できる最も水準の低い隔離性水準はREPEATABLE READです。READ COMMITTEDは,コミット済みの値しか読まないことは保証しますが,トランザクション途中での再読込み時に値が変わることは防げません。
選択肢ごとの解説
- ア誤り。READ COMMITTEDは,コミットされていないデータを読まないことは保証しますが,トランザクション内で同じデータを再度読み込んだときに値が変わってしまう反復不能読取りは防止できません。
- イ誤り。READ UNCOMMITTEDは最も水準の低い分離レベルであり,コミットされていないデータの読取り(ダーティリード)も許容するため,反復不能読取りは防止できません。
- ウ正しい。REPEATABLE READは,トランザクション中に読み込んだデータが他のトランザクションによる更新・コミットの影響を受けないことを保証する,反復不能読取りを防止できる最も水準の低い隔離性水準です。
- エ誤り。SERIALIZABLEは反復不能読取りを防止できますが,REPEATABLE READよりも水準が高く,最も水準の低いものではありません。