Principal
Kas yra sandoriai duomenų bazėse? Kokie yra sandorių izoliacijos lygiai, ką jie reiškia ir koks yra pagrindinis skirtumas?
sobes.tech AI
Atsakymas iš AI
Duomenų bazėje operacija yra logiškai susijusi operacijų seka, kuri vykdoma kaip viena vieninga visuma. Pagrindinės operacijų savybės aprašomos trumpiniu ACID:
- Atomiskumas — visos operacijos arba visiškai įvykdomos, arba visai ne.
- Nuoseklumas — operacija perkelia duomenų bazę iš vienos teisingos būsenos į kitą.
- Izoliacija — paralelios operacijos viena į kitą neveikia.
- Patvarumas — po patvirtinimo (commit) pakeitimai išlieka net ir gedimų atveju.
Operacijų izoliacijos lygiai nustato, kiek matomos viena operacija kitos pakeitimų ir įtakoja galimas anomalijas:
- Read Uncommitted — operacija gali matyti kitų nepatvirtintus pakeitimus (nešvari skaitymas).
- Read Committed — matomos tik patvirtintos pakeitimai, bet gali būti nepakartojami skaitymai.
- Repeatable Read — garantuoja, kad pakartotinis tų pačių duomenų skaitymas duos tą patį rezultatą, bet gali būti vaiduoklių skaitymų (nauji įrašai).
- Serializable — griežčiausias lygis, operacijos vykdomos kaip sekos, pašalinant visas anomalijas.
Pagrindinis skirtumas — tai balansas tarp našumo ir griežtos izoliacijos. Kuo aukštesnis lygis, tuo mažesnis paralelizmas, bet didesnė duomenų integralumas.