令和7年度 秋期 データベーススペシャリスト試験 午前II 問15

トランザクションT1,T2を同時実行した際に,次の異状を防ぐことができるトランザクションの隔離性水準のうち,最も水準の低いものはどれか。

〔異状〕

T1が同じデータを複数回読み込んでいる途中で,T2がそのデータを更新してコミットしたことによって,T1が更新していないのにもかかわらずT1が読み込むデータが変わってしまう。

解答・解説

正解: ウ. REPEATABLE READ

問題文に記述されている異状は、ノンリピータブルリード(Non-Repeatable Read) に関する説明です。トランザクションT1が同じデータを再読込した際に、別のトランザクションT2によってデータが更新・コミットされていたため、読み込む結果が変わってしまう現象を指します。

トランザクションの 隔離性水準(アイソレーションレベル) には、水準の低い順に以下の4つがあります。

  1. READ UNCOMMITTED:ダーティリード、ノンリピータブルリード、ファントムリードのすべてが発生し得る。
  2. READ COMMITTED:ダーティリードを防ぐことができるが、ノンリピータブルリードやファントムリードは発生し得る。
  3. REPEATABLE READ:ダーティリードとノンリピータブルリードを防ぐことができるが、ファントムリードは発生し得る。
  4. SERIALIZABLE:すべての異状(ファントムリード含む)を防ぐことができる。

したがって、ノンリピータブルリードを防ぐことができるのは REPEATABLE READ と SERIALIZABLE であり、その中で最も水準の低いものは REPEATABLE READ となります。

各選択肢の解説

  • ア READ COMMITTED: コミット済みのデータのみを読み取るため ダーティリード は防げますが、ノンリピータブルリードは防ぐことができないため誤りです。
  • イ READ UNCOMMITTED: 隔離性水準が最も低く、コミットされていないデータも読み取ってしまう( ダーティリード が発生する)ため誤りです。
  • ウ REPEATABLE READ: ノンリピータブルリード を防ぐことができる水準のうち、最も低いものなので正解です。
  • エ SERIALIZABLE: ノンリピータブルリードを含むすべての異状( ファントムリード など)を防ぐことができますが、「最も水準の低いもの」ではないため誤りです。

Spineチーム