Čo je ACID?
ACID je akronym pre štyri vlastnosti databázových transakcií: Atomicita, Konzistencia, Izolácia a Trvanlivosť. Tieto vlastnosti garantujú spoľahlivosť a bezpečnosť operácií s dátami. ACID je základom relačných databáz a kritických systémov ako bankovníctvo.
Definícia ACID
Čo znamená ACID
ACID je súbor štyroch vlastností, ktoré garantujú spoľahlivé spracovanie databázových transakcií. Koncept formalizoval Jim Gray v roku 1981 a stal sa základným kameňom teórie relačných databáz.
Štyri vlastnosti ACID
- Atomicita (Atomicity) — transakcia sa buď vykoná celá, alebo vôbec. Ak jedna operácia zlyhá, všetky zmeny sa vrátia (rollback)
- Konzistencia (Consistency) — transakcia prevádza databázu z jedného konzistentného stavu do druhého. Všetky pravidlá a obmedzenia musia byť splnené
- Izolácia (Isolation) — súbežné transakcie sa navzájom neovplyvňujú. Každá transakcia prebieha, akoby bola jediná v systéme
- Trvanlivosť (Durability) — po potvrdení (COMMIT) sú zmeny trvalo uložené, aj keby server ihneď spadol
ACID v praxi
Relačné databázy ako PostgreSQL, MySQL (InnoDB) a Oracle plne podporujú ACID. NoSQL databázy často obetujú niektoré ACID vlastnosti v prospech výkonu a škálovateľnosti — napríklad MongoDB pridalo multi-document transakcie až od verzie 4.0.
Praktický príklad
Príklad — bankový prevod: Prevádzate 100 EUR z účtu A na účet B. Transakcia obsahuje dve operácie: odpísanie z A a pripísanie na B.
Bez ACID: Ak server spadne po odpísaní z A, ale pred pripísaním na B, peniaze „zmiznú" — 100 EUR sa odpísalo, ale nikam neprišlo.
S ACID (atomicita): Ak jedna operácia zlyhá, celá transakcia sa vráti. Peniaze ostanú na účte A. Žiadne peniaze sa nestratia.
Často kladené otázky
Čo znamená ACID v databázach?
ACID je skratka pre Atomicita, Konzistencia, Izolácia a Trvanlivosť — štyri vlastnosti, ktoré garantujú spoľahlivé spracovanie databázových transakcií.
Prečo je ACID dôležitý?
ACID zabraňuje strate dát, nekonzistentnostiam a čiastočne vykonaným operáciám. Je kritický pre finančné systémy, e-commerce a všetky aplikácie, kde je presnosť dát nevyhnutná.
Podporujú NoSQL databázy ACID?
Väčšina NoSQL databáz nepodporuje plný ACID na úrovni viacerých dokumentov. MongoDB pridalo multi-document transakcie od verzie 4.0, ale stále s obmedzeniami oproti relačným databázam.
Čo je databázová transakcia?
Transakcia je skupina operácií, ktoré sa vykonajú ako jeden celok. Buď sa vykonajú všetky operácie (COMMIT), alebo žiadna (ROLLBACK). Transakcie sú základom ACID vlastností.
Súvisiace pojmy
Potrebujete pomôcť s webom?
Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.