DBデータベーススペシャリスト試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

トランザクションT1,T2を同時実行した際に,次の異状を防ぐことができるトランザクションの隔離性水準のうち,最も水準の低いものはどれか。 〔異状〕 T1が同じデータを複数回読み込んでいる途中で,T2がそのデータを更新してコミットしたことによって,T1が更新していないにもかかわらずT1が読み込むデータが変わってしまう。

選択肢

  1. ア
    READ COMMITTED
  2. イ
    READ UNCOMMITTED
  3. ウ
    REPEATABLE READ
  4. エ
    SERIALIZABLE
解き方のヒントを見る

境界と整合性を見極める視点

トランザクションの開始から終了までを一つのまとまりとして捉え、途中の状態変化、複数処理の関係、障害や同時実行時に整合性を確認する観点を整理しましょう。各操作がどの時点で確定したと扱われるかにも注目します。

この問題で問われていること

一つの処理単位の境界がどこに置かれ、その前後でデータの見え方や確定の扱いがどう変わるかを、時系列に沿って整理することに集中してください。周囲の処理との関係も切り分けます。

視点

処理を時系列に並べ、各操作が同じまとまりに属するか、途中状態がどの範囲に影響するか、処理の区切りが整合性の確認にどう関係するかを整理します。

確認ポイント

  • 処理単位の開始点と終了点を時系列で整理する
  • 途中状態がどの処理や利用者から見える可能性があるか確認する
  • 障害や同時実行が境界と整合性に与える影響を切り分ける
正解と解説を見る

正解

ウ

解説

この異状は、同じデータを繰り返し読む途中で、他のトランザクションのコミット済み更新が読み取り結果を変える現象です。これを防ぐ最も低い水準はREPEATABLE READです。

理由

T1が同じデータを複数回読み込む間にT2が更新してコミットすると、T1の読み取り結果が変化する。この異状は反復不能読取りに該当し、同じデータを繰り返し読んでも結果を保てる水準が必要になる。

比較

READ UNCOMMITTEDは未コミットデータの読み取りも許すため低すぎる。READ COMMITTEDはコミット済みデータだけを読むが、同一トランザクション中の再読時に更新後の値を読むことがある。SERIALIZABLEはより強い水準であり、最も低いものではありません。

選択肢ア

これは不正解だよ。READ COMMITTEDは、読み取り時点でコミット済みのデータだけを参照する水準である。しかし、T1が同じデータを再読する前にT2が更新してコミットすると、次の読み取りで新しい値を取得することがあるため、設問の異状を防げない。

選択肢イ

これは不正解だよ。READ UNCOMMITTEDは、他のトランザクションがまだコミットしていない更新も読み取れる水準である。設問のようなコミット後の読み取り結果の変化を防げないうえ、未コミットデータを読む異状も許してしまうため、条件を満たさない。

選択肢ウ(正解)

これは正解だよ。REPEATABLE READは、T1が同じデータを複数回読み取る間、その読み取り結果を保つ水準である。したがって、T2が更新してコミットしても、T1が読み取る同じデータの内容が変化する異状を防げる。SERIALIZABLEより低い水準なので、最も低いものでもある。

選択肢エ

これは不正解だよ。SERIALIZABLEは、同時実行されたトランザクションの結果が直列実行と同等になるように制御する、最も強い隔離性水準である。設問の異状は防げるが、REPEATABLE READでも防止できるため、最も低い水準ではない。

学習のポイント

隔離性水準は、ダーティリードと反復不能読取りを区別して覚える。

出典:独立行政法人 情報処理推進機構(IPA)令和7年度秋期 データベーススペシャリスト試験 午前Ⅱ 問15(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針