トランザクションT1、T2を同時実行した際に、次に異常を防ぐことができるトランザクションの隔離性水準のうち、最も水準の低いものはどれか。
[異常]
T1が同じデータを複数回読み込んでいる途中で、T2がそのデータを更新してコミットしたことによって、T1が更新していないのにもかかわらず読み込むデータが変わってしまう。
| ア | READ COMMITTED |
| イ | READ UNCOMMITTED |
| ウ | REPEATABLE READ |
| エ | SERIALIZABLE |
答え
【解説】
| ア | READ COMMITTEDは、コミットされたデータを読込むためダーティリードを回避できますが、2回目の読込みの列値が1回目と同じとは限りません。(×) |
| イ | READ UNCOMMITTEDは、他のトランザクションがコミットしていないデータを読込むため、ダーティリードが発生します。(×) |
| ウ | REPEATABLE READは、一つのトランザクション中で、対象の表のある行を2回以上参照する場合、1回目の読込みの列値と2回目以降の読込みの列値が同じであることが保証されます。(〇) |
| エ | SERIALIZABLEは、全てのトランザクションを直列化することです。(×) |
【キーワード】
・隔離性水準