Principal
Mi az a tranzakció az adatbázisokban? A tranzakciók izolációs szintjei – mi értelmük és mi a fő különbség?
sobes.tech MI
Válasz az MI-től
Az adatbázisban a tranzakció egy logikailag összefüggő műveletsorozat, amely egységként hajtódik végre. A tranzakciók fő jellemzőit az ACID rövidítés írja le:
- Atomosság — minden művelet a tranzakcióban vagy teljes egészében végrehajtódik, vagy egyáltalán nem.
- Konzisztencia — a tranzakció az adatbázist egy helyes állapotból egy másik helyes állapotba viszi.
- Elszigeteltség — párhuzamos tranzakciók nem befolyásolják egymást.
- Tartósság — a commit után a változások még hibák esetén is megmaradnak.
Tranzakciók elszigeteltségi szintjei meghatározzák, hogy egy tranzakció változásai milyen mértékben láthatók mások számára, és befolyásolják a lehetséges anomáliákat:
- Read Uncommitted — egy tranzakció láthatja mások nem megerősített változásait (szennyezett olvasás).
- Read Committed — csak megerősített változások láthatók, de előfordulhatnak nem ismételhető olvasások.
- Repeatable Read — garantálja, hogy ugyanazokat az adatokat többször olvasva ugyanazt az eredményt kapjuk, de előfordulhatnak fantomolvasások (új sorok).
- Serializable — a legszigorúbb szint, a tranzakciók úgy futnak, mintha szekvenciálisak lennének, minden anomáliát kiküszöbölve.
A fő különbség a teljesítmény és a szigorú elszigeteltség közötti egyensúlyban rejlik. Minél magasabb a szint, annál kevesebb a párhuzamosság, de annál nagyobb az adatok integritása.