Transaction isolation levels: which level allows dirty reads, nonrepeatable reads, and phantom reads?

Difficulty: Easy

Correct Answer: Read uncommitted

Explanation:

Introduction / Context:Isolation levels regulate what anomalies are possible when transactions run concurrently. The question asks which level is the least strict, permitting all three classic anomalies.

Given Data / Assumptions:

  • Dirty read: reading uncommitted changes.
  • Nonrepeatable read: same row returns different values within a transaction.
  • Phantom read: a re-run of a range query returns a different set of rows.

Concept / Approach:Read uncommitted is the lowest isolation level. It allows dirty reads and therefore also permits nonrepeatable and phantom reads. Higher levels restrict these anomalies progressively.

Step-by-Step Solution:

Map anomalies to levels: Read uncommitted allows all.Read committed blocks dirty reads but not the others.Repeatable read blocks dirty and nonrepeatable, but not phantoms.Serializable blocks all three.

Verification / Alternative check:Standards and vendor docs concur on the anomaly allowances described above, with some engine-specific nuances.

Why Other Options Are Wrong:Read committed, Repeatable read, and Serializable progressively restrict anomalies; none of them allow all three.

Common Pitfalls:Confusing “read committed” with “repeatable read”; the latter also prevents nonrepeatable reads, not just dirty reads.

Final Answer:Read uncommitted

More Questions from Managing Multiuser Databases

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion