Write skew
Anomalia współbieżności: dwie transakcje czytają nakładające się dane, obie aktualizują je na podstawie tego, co zobaczyły, i stan końcowy jest niepoprawny, mimo że obie były odizolowane. Snapshot isolation na to pozwala; SERIALIZABLE to blokuje.
Klasyczny przykład: szpitalna reguła „co najmniej jeden lekarz na dyżurze”. Tx1: lekarz A sprawdza, czy może wziąć urlop — count(on_call) = 2 → tak. Tx2: lekarz B robi to samo — count = 2 → tak. Obaj ustawiają on_call = false. Wynik: 0 lekarzy na dyżurze. Obie transakcje widziały stan z dwoma lekarzami, decyzje były odizolowane i zatwierdzone atomowo — ale łączny rezultat jest niepoprawny. Obrona: izolacja SERIALIZABLE (SSI), jawne blokady wierszy (FOR UPDATE), walidacja ograniczeń w aplikacji. PostgreSQL w trybie SERIALIZABLE wykrywa write skew i przerywa jedną z transakcji.