Der er meget at tænke på
Når man arbejder med hjemmesider så kan de hurtigt blive komplekse. Det kan de fx hvis der bruges databaser til at styrer dem.
Bare tænk dette scenarie.
Der opstår forskellige problemer, hvis forskellige programmer, der bruger den samme database, kan se hinandens ændringer inden de er helt gennemførte. Løsningen er, at isolere de enkelte databasetransaktioner fra hinanden. En høj grad af isolation sikrer, data hænger rigtigt sammen, men begrænser også parallelle opdateringer, hvilket kan give lange afviklingstider for de opdaterende programmer.
De mest gængse niveauer af isolation er fra det laveste til det højeste:
Læs ikke gennemførte (read uncommitted): Ingen isolation. Et program kan læse data, som måske bliver tilbageført eller overskrevet senere.
Læs gennemførte (read committed): Et program kan kun læse data, der er skrevet endeligt til databasen. Det er muligt, at de læste data ændres fra anden side inden transaktionen er slut.
Gentagelige læsninger: Et program kan læse de samme data flere gange og få det samme resultat inden for den aktuelle transaktion.
Serialisering: Ud over gentagelige læsninger er mulige, sikres det, at en transaktion ikke har kunnet læst data, der er slettet eller ændret inden transaktionen er gennemført. Data, der er tilføjet fra en anden transaktion kan heller ikke ses.
I mange tilfælde er niveauet "læs gennemførte" tilstrækkeligt.
