DBMS je správa údajov, ktoré by mali zostať integrované, keď sa v nich vykonajú akékoľvek zmeny. Je to preto, že ak je ovplyvnená integrita údajov, celé údaje sa narušia a poškodia. Preto, aby sa zachovala integrita údajov, sú v systéme správy databáz opísané štyri vlastnosti, ktoré sú známe ako KYSELINA vlastnosti. Vlastnosti ACID sú určené pre transakciu, ktorá prechádza inou skupinou úloh, a tam vidíme úlohu vlastností ACID.
V tejto časti sa naučíme a pochopíme vlastnosti ACID. Dozvieme sa, čo tieto vlastnosti znamenajú a na čo každá vlastnosť slúži. Vlastnosti ACID pochopíme aj pomocou niekoľkých príkladov.
Vlastnosti kyseliny
Rozšírenie termínu ACID definuje:
1) Atomicita
Pojem atomicita definuje, že dáta zostávajú atómové. To znamená, že ak sa s údajmi vykoná nejaká operácia, buď by sa mala vykonať alebo vykonať úplne, alebo by sa nemala vykonať vôbec. Ďalej to znamená, že operácia by sa nemala prerušiť alebo vykonať čiastočne. V prípade vykonávania operácií s transakciou by sa operácia mala vykonať úplne a nie čiastočne.
Príklad: Ak má Remo na účte A 30 $, z ktorého chce poslať 10 $ na Sheerov účet, ktorý je B. Na účte B je už prítomná suma 100 $. Keď bude 10 USD prevedených na účet B, suma bude 110 USD. Teraz sa uskutočnia dve operácie. Jedným z nich je suma 10 dolárov, ktorú chce Remo previesť, odpísaná z jeho účtu A a rovnaká suma bude pripísaná na účet B, t. j. na Sheerov účet. Teraz, čo sa stane - prvá operácia debetu sa úspešne vykoná, ale úverová operácia zlyhá. Na Removom účte A sa teda hodnota stáva 20 USD a na účte Sheera zostáva 100 USD, ako bola predtým.
Na vyššie uvedenom diagrame je vidieť, že po pripísaní 10 USD je suma na účte B stále 100 USD. Nejde teda o žiadnu atómovú transakciu.
Obrázok nižšie ukazuje, že debetné aj kreditné operácie sú úspešne vykonané. Transakcia je teda atómová.
Keď teda množstvo stratí atomickosť, potom v bankových systémoch sa to stáva obrovským problémom, a preto je atomicita hlavným zameraním bankových systémov.
2) Konzistentnosť
Slovo konzistencia znamená, že hodnota by mala zostať vždy zachovaná. In DBMS Integrita údajov by mala byť zachovaná, čo znamená, že ak dôjde k zmene v databáze, mala by zostať vždy zachovaná. V prípade transakcií je integrita údajov veľmi dôležitá, aby databáza zostala konzistentná pred transakciou a po nej. Údaje by mali byť vždy správne.
Príklad:
Na obrázku vyššie sú tri účty, A, B a C, kde A uskutočňuje transakciu T jeden po druhom do oboch B a C. Prebiehajú dve operácie, t. j. debetná a kreditná. Účet A najprv odpíše 50 USD z účtu B a sumu na účte A prečíta B pred transakciou 300 USD. Po úspešnej transakcii T sa dostupná suma v B stane 150 USD. Teraz A odpíše 20 $ na účet C a vtedy je hodnota prečítaná C 250 $ (to je správne, pretože debet 50 $ bol úspešne vykonaný na B). Debetná a kreditná operácia z účtu A na C bola úspešne vykonaná. Vidíme, že transakcia prebehla úspešne a hodnota je tiež správne načítaná. Údaje sú teda konzistentné. V prípade, že hodnota čítaná B a C je 300 USD, čo znamená, že údaje sú nekonzistentné, pretože keď sa vykoná debetná operácia, nebudú konzistentné.
3) Izolácia
Pojem „izolácia“ znamená oddelenie. V DBMS je izolácia vlastnosťou databázy, kde by žiadne údaje nemali ovplyvňovať tú druhú a môžu sa vyskytovať súčasne. Stručne povedané, operácia na jednej databáze by sa mala začať, keď sa dokončí operácia na prvej databáze. To znamená, že ak sa dve operácie vykonávajú na dvoch rôznych databázach, nemusia navzájom ovplyvniť hodnotu. V prípade transakcií, keď sa súčasne vyskytnú dve alebo viac transakcií, konzistencia by mala zostať zachovaná. Akékoľvek zmeny, ktoré sa vyskytnú v akejkoľvek konkrétnej transakcii, neuvidia ostatné transakcie, kým sa zmena nepotvrdí v pamäti.
Príklad: Ak dve operácie prebiehajú súčasne na dvoch rôznych účtoch, hodnota oboch účtov by nemala byť ovplyvnená. Hodnota by mala zostať trvalá. Ako vidíte na nižšie uvedenom diagrame, účet A vykonáva transakcie T1 a T2 na účty B a C, ale oba sa vykonávajú nezávisle bez toho, aby sa navzájom ovplyvňovali. Je známa ako izolácia.
4) Trvanlivosť
Trvanlivosť zaisťuje stálosť niečoho. V DBMS termín trvanlivosť zabezpečuje, že údaje sa po úspešnom vykonaní operácie stanú trvalými v databáze. Trvanlivosť údajov by mala byť taká dokonalá, že aj keď systém zlyhá alebo vedie k havárii, databáza stále prežije. Ak sa však stratí, stáva sa to zodpovednosťou manažéra obnovy za zabezpečenie trvanlivosti databázy. Na potvrdenie hodnôt je potrebné použiť príkaz COMMIT vždy, keď vykonáme zmeny.
Preto vlastnosť ACID DBMS hrá zásadnú úlohu pri udržiavaní konzistencie a dostupnosti údajov v databáze.
Išlo teda o presné zavedenie vlastností ACID v DBMS. O týchto vlastnostiach sme hovorili aj v sekcii transakcií.