令和6年度 秋期 データベーススペシャリスト試験 午前II 問15
【問題15】
トランザクションT₁とT₂の並行実行における不整合検索異状(inconsistent retrieval anomaly)の説明はどれか。
T₁がxを更新した後コミットする前に、T₂もxを更新すること
T₁とT₂が同時にデータxを読み、T₁はxを更新する。T₂は更新前のxの値に基づいてデータyを更新することによって、yの値がxの値に基づかなくなること
先行するT₁が更新したデータxを、後続のT₂が読んで処理を行うとき、T₁がロールバックすると、T₂もロールバックしなければならなくなること
先行するT₁が更新したデータxを、後続のT₂が読んで処理を行った後に、T₁がロールバックすることによって、T₂は結果的に誤った処理になること
【解説】
不整合検索異状(inconsistent retrieval anomaly) は、トランザクション間でデータ整合性が保たれない状況を指します。特に、あるトランザクションが別のトランザクションによる未コミットまたは更新前の値に基づいて操作を行う際に、データ整合性が破壊されるケースが典型例です。
ア: T₁がxを更新した後コミットする前に、T₂もxを更新すること
誤り。これは更新競合の例であり、不整合検索異状には該当しません。
イ: T₁とT₂が同時にデータxを読み、T₁はxを更新する。T₂は更新前のxの値に基づいてデータyを更新することによって、yの値がxの値に基づかなくなること
正しい。この状況では、T₂がxの古い値に基づいて処理を行った結果、yの値が最新のxの値と整合性を欠く状態になります。不整合検索異状の典型例です。
ウ: 先行するT₁が更新したデータxを、後続のT₂が読んで処理を行うとき、T₁がロールバックすると、T₂もロールバックしなければならなくなること
誤り。これはカスケードロールバックの例であり、不整合検索異状とは異なります。
エ: 先行するT₁が更新したデータxを、後続のT₂が読んで処理を行った後に、T₁がロールバックすることによって、T₂は結果的に誤った処理になること
誤り。これはダーティリードの例であり、不整合検索異状とは異なります。
【答え】
イ: T₁とT₂が同時にデータxを読み、T₁はxを更新する。T₂は更新前のxの値に基づいてデータyを更新することによって、yの値がxの値に基づかなくなること
出典:令和6年度 秋期 データベーススペシャリスト試験 午前II 問15