Sobes.tech
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:

  1. Read Uncommitted — egy tranzakció láthatja mások nem megerősített változásait (szennyezett olvasás).
  2. Read Committed — csak megerősített változások láthatók, de előfordulhatnak nem ismételhető olvasások.
  3. Repeatable Read — garantálja, hogy ugyanazokat az adatokat többször olvasva ugyanazt az eredményt kapjuk, de előfordulhatnak fantomolvasások (új sorok).
  4. 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.