Principal
Mis on andmebaaside tehingud? Millised on tehingute isolatsiooni tasemed, mis nende tähendus on ja mis on peamine erinevus?
sobes.tech AI
Vastus AI-lt
Andmebaasis on transaktsioon loogiliselt seotud operatsioonide jada, mis täidetakse kui üks tervik. Transaktsioonide peamised omadused on kirjeldatud akronüümiga ACID:
- Aatomilisus — kõik operatsioonid täidetakse täielikult või mitte üldse.
- Konsistents — transaktsioon viib andmebaasi ühest õigesti seisundist teise.
- Isoleeritus — paralleelsed transaktsioonid ei mõjuta üksteist.
- Püsivus — pärast kinnitamist (commit) jäävad muudatused kehtima isegi rikete korral.
Transaktsioonide isolatsiooni tasemed määravad, kui palju on ühe transaktsiooni muudatused nähtavad teistele ning mõjutavad võimalikke anomaaliaid:
- Read Uncommitted — transaktsioon võib näha teiste kinnitamata muudatusi (must lugemine).
- Read Committed — nähtavad on ainult kinnitatud muudatused, kuid võivad esineda mitte-korduvad lugemised.
- Repeatable Read — tagab, et sama andmete korduv lugemine annab sama tulemuse, kuid võivad esineda kummituslugemised (uued read).
- Serializable — kõige rangem tase, transaktsioonid täidetakse nagu oleksid järjestikused, kõrvaldades kõik anomaaliad.
Peamine erinevus on tasakaal jõudluse ja rangema isolatsiooni vahel. Mida kõrgem tase, seda vähem on paralleelsust, kuid suurem andmete terviklikkus.