厳格な2相ロッキングと表ロックによるSERIALIZABLE隔離性水準の実現

正解は「エ」です。 厳格な2相ロッキング(Strict 2-Phase Locking: S2PL)プロトコルは、トランザクションが獲得したすべての排他ロック(共有ロックを含む場合もある)をトランザクション終了(コミットまたはアボート)まで保持し続けるロック方式です。 さらにロックの粒度として行単位ではなく「表ロック(テーブル全体のロック)」を適用することにより、問合せ範囲内に新たな行が挿入・削除されるファントムリード(幻像読込み)の発生も完全に阻止されます。 これにより、ダーティリード、反復不能読込み、ファントムリードのすべての不整合現象が完全に防止され、最高水準である SERIALIZABLE(直列化可能)が実現されます。 READ UNCOMMITTED はコミットされていない未確定データも読める最も低い隔離性水準であり、排他ロックの保持も限定的です。 READ COMMITTED はコミット済みのデータのみを読み取りますが、同一トランザクション内で再読込した際に値が変わる反復不能読込みやファントムリードが発生します。 REPEATABLE READ は読み取った既存行の更新・削除は防止できますが、表全体のロックを行わない行ロック環境では新たな行の挿入によるファントムリードが発生する可能性があります。

厳格な2相ロッキングプロトコルと表ロックを適用して,同時実行している他のトランザクションの処理結果に影響を与えないようにする。実現されるトランザクションの隔離性水準はどれか。

出典平成30年春期 午前Ⅱ
ア
READ UNCOMMITTED
イ
READ COMMITTED
ウ
REPEATABLE READ
エ
SERIALIZABLE