When transactions run side by side, one can read data that is later rolled back, or see a value change between two reads. These named anomalies, dirty, non-repeatable, phantom and lost update, describe exactly what can go wrong. Use them to reason about bugs like two users booking the same seat. The usual confusion is non-repeatable versus phantom: one is a changed value, the other is new or missing rows.