Sobes.tech
Junior

Miks kasutatakse andmebaasides tehinguid?

sobes.tech AI

Vastus AI-lt

Tehingud tagavad andmebaasi operatsioonide atomilisuse, kooskõlas, isoleerituse ja püsivuse (ACID) nõuded.\n\n* Atomilisus: Kõik tehingu operatsioonid või täidetakse täielikult või mitte üldse. Kui üks operatsioon ebaõnnestub, tühistatakse kõik.\n* Kooskõla: Tehing viib andmebaasi ühest kooskõlastatud olekust teise. Tõkestatakse piirangute (näiteks unikaalsed võtmed) rikkumised.\n* Isoleeritus: Iga tehing täidetakse nagu see oleks ainus süsteemis. Ühe tehingu tehtud muudatused ei ole teistele nähtavad enne selle lõpetamist.\n* Püsivus: Pärast tehingu edukat lõpetamist säilivad selle muudatused ning need ei kao isegi süsteemi rikke korral.\n\nTehingud on olulised andmete terviklikkuse tagamiseks, eriti kui teostatakse mitu seotud operatsiooni, mis peavad toimuma koos või mitte üldse. Näide — raha ülekandmine säästukontolt arvelduskontole.\n\nsql\n-- Tehingu algus\nSTART TRANSACTION;\n\n-- Esimese konto debiteerimine\nUPDATE accounts SET balance = balance - 100 WHERE account_id = 1;\n\n-- Kui eelmine operatsioon õnnestus, krediteerimine teisele kontole\nUPDATE accounts SET balance = balance + 100 WHERE account_id = 2;\n\n-- Kontroll, kas mõlemad operatsioonid õnnestusid ja vigu ei esine\n-- Juhul kui viga, siis\n-- ROLLBACK; -- Kõik muudatused tühistada\n-- Kui mitte, siis\n-- COMMIT; -- Kõik muudatused kinnitada\n-- END IF;\n\n-- Eeldades, et mõlemad käsud õnnestusid, näide\nCOMMIT; -- Tehingu kinnitamine\n-- ROLLBACK; -- Tehingu tühistamine vea korral\n