Principal
Wat zijn transacties in databases? Wat zijn de isolatieniveaus van transacties, wat is de betekenis ervan en wat is het belangrijkste verschil?
sobes.tech AI
Antwoord van AI
Een transactie in een database is een logisch verbonden reeks operaties die als één geheel wordt uitgevoerd. De belangrijkste eigenschappen van transacties worden beschreven met de afkorting ACID:
- Atomiciteit — alle operaties van de transactie worden volledig uitgevoerd of helemaal niet.
- Consistentie — de transactie brengt de database van één correcte staat naar een andere correcte staat.
- Isolatie — gelijktijdige transacties beïnvloeden elkaar niet.
- Durabiliteit — na een commit blijven de wijzigingen behouden, zelfs bij storingen.
Niveaus van isolatie van transacties bepalen de mate waarin de wijzigingen van één transactie zichtbaar zijn voor anderen en beïnvloeden mogelijke anomalieën:
- Read Uncommitted — een transactie kan ongeregistreerde wijzigingen van anderen zien (vuile lezing).
- Read Committed — alleen bevestigde wijzigingen zijn zichtbaar, maar niet-herhaalbare lezingen kunnen voorkomen.
- Repeatable Read — garandeert dat herhaalde lezingen van dezelfde gegevens in een transactie hetzelfde resultaat opleveren, maar kunnen fantasie-lezingen (nieuwe rijen) voorkomen.
- Serializable — het strengste niveau, transacties worden uitgevoerd alsof ze sequentieel zijn, waardoor alle anomalieën worden geëlimineerd.
Het belangrijkste verschil ligt in de balans tussen prestaties en strikte isolatie. Hoe hoger het niveau, hoe minder parallelisme, maar hoe groter de gegevensintegriteit.