Ba hiện tượng bất thường khi nhiều transaction chạy đồng thời:
- Dirty read: đọc phải dữ liệu mà transaction khác chưa commit — nếu transaction đó rollback thì ta đã đọc dữ liệu "ma".
- Non-repeatable read: đọc cùng một hàng hai lần trong một transaction ra giá trị khác nhau vì transaction khác đã commit UPDATE ở giữa.
- Phantom read: chạy cùng một truy vấn theo điều kiện (vd
WHERE age > 30) hai lần ra số hàng khác nhau vì transaction khác đã INSERT/DELETE hàng khớp điều kiện.
Khác nhau ở phạm vi: dirty = dữ liệu chưa commit; non-repeatable = một hàng đổi giá trị; phantom = tập hàng khớp điều kiện thay đổi. Isolation level cao hơn lần lượt loại bỏ chúng.