Web Developmentexpert

Č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á.