トランザクションT1とT2の並行実行における不整合検索異状(inconsistent retrieval anomaly)の説明はどれか。
| ア | T1がxを更新した後コミットする前に、T2もxを更新すること |
| イ | T1とT2同時にデータxを読み、T1はxを更新する。 T2は更新前のxの値に基づいてデータyを更新することによって、yの値がxの値に基づかなくなること |
| ウ | 先行するT1が更新したデータxを、後続のT2が四で処理を行うとき、T1がロールバックすると、T2もロールバックしなければならなくなること |
| エ | 先行するT1が更新したデータxを、後続のT2が読んで処理を行うとき、T1がロールバックすると、T2は結果的に誤った処理になること |
答え イ
【解説】
| ア | T1がxを更新した後コミットする前に、T2もxを更新することは、ノンリピータブルリード(non-repeatable read)やファジーリード(fuzzy read)です。(×) |
| イ | T1とT2同時にデータxを読み、T1はxを更新する。 T2は更新前のxの値に基づいてデータyを更新することによって、yの値がxの値に基づかなくなることは、不整合検索異状です。(〇) |
| ウ | 先行するT1が更新したデータxを、後続のT2が四で処理を行うとき、T1がロールバックすると、T2もロールバックしなければならなくなることは、ダーティリード対策です。(×) |
| エ | 先行するT1が更新したデータxを、後続のT2が読んで処理を行うとき、T1がロールバックすると、T2は結果的に誤った処理になることは、ダーティリードです。(×) |
【キーワード】
・不整合検索異状