DBMS je správa dat, která by měla zůstat integrovaná, když jsou v nich provedeny jakékoli změny. Je to proto, že pokud je narušena integrita dat, celá data budou narušena a poškozena. Proto, aby byla zachována integrita dat, jsou v systému správy databází popsány čtyři vlastnosti, které jsou známé jako KYSELINA vlastnosti. Vlastnosti ACID jsou určeny pro transakci, která prochází jinou skupinou úkolů, a tam vidíme roli vlastností ACID.
V této části se naučíme a porozumíme vlastnostem ACID. Dozvíme se, co tyto vlastnosti znamenají a k čemu každá vlastnost slouží. Vlastnosti ACID pochopíme také pomocí několika příkladů.
Vlastnosti kyseliny
Rozšíření termínu ACID definuje pro:
1) Atomicita
Termín atomicita definuje, že data zůstávají atomická. To znamená, že pokud je s daty provedena nějaká operace, buď by měla být provedena nebo provedena úplně, nebo by neměla být provedena vůbec. Dále to znamená, že operace by se mezi nimi neměla prolomit nebo by se neměla provádět částečně. V případě provádění operací na transakci by měla být operace provedena zcela a ne částečně.
Příklad: Pokud má Remo účet A na svém účtu 30 $, ze kterého si přeje poslat 10 $ na účet Sheera, což je B. Na účtu B je již částka 100 $. Když bude 10 $ převedeno na účet B, částka bude 110 $. Nyní proběhnou dvě operace. Jedním z nich je částka 10 USD, kterou chce Remo převést, odečtena z jeho účtu A a stejná částka bude připsána na účet B, tedy na Sheeroův účet. Nyní, co se stane - první operace debetu se úspěšně provede, ale kreditní operace se nezdaří. Na Remově účtu A se tedy hodnota stává 20 USD a na účtu Sheera zůstává 100 USD, jak tomu bylo dříve.
Na výše uvedeném diagramu je vidět, že po připsání 10 $ je částka na účtu B stále 100 $. Nejedná se tedy o atomickou transakci.
Níže uvedený obrázek ukazuje, že debetní i kreditní operace probíhají úspěšně. Transakce je tedy atomická.
Když tedy množství ztratí atomicitu, pak se to v bankovních systémech stává velkým problémem, a tak je atomicita hlavním cílem v bankovních systémech.
2) Konzistence
Slovo konzistence znamená, že hodnota by měla zůstat vždy zachována. v DBMS , měla by být zachována integrita dat, což znamená, že pokud dojde ke změně v databázi, měla by zůstat zachována vždy. V případě transakcí je integrita dat velmi důležitá, aby databáze zůstala konzistentní před a po transakci. Údaje by měly být vždy správné.
Příklad:
Na výše uvedeném obrázku jsou tři účty, A, B a C, kde A provádí transakci T jeden po druhém do obou B a C. Probíhají dvě operace, tj. Debetní a Kreditní. Účet A nejprve odečte 50 USD na vrub účtu B a částka na účtu A je před transakcí přečtena B 300 USD. Po úspěšné transakci T se dostupná částka v B stane 150 $. Nyní A odepisuje 20 $ na účet C a v tu chvíli je hodnota čtená C 250 $ (to je správné, protože inkaso 50 $ bylo úspěšně provedeno na B). Debetní a kreditní operace z účtu A na C byla úspěšně provedena. Vidíme, že transakce je úspěšně provedena a hodnota je také správně načtena. Údaje jsou tedy konzistentní. V případě, že hodnota čtená B a C je 300 $, znamená to, že data jsou nekonzistentní, protože při provedení debetní operace nebudou konzistentní.
3) Izolace
Pojem „izolace“ znamená oddělení. V DBMS je izolace vlastnost databáze, kde by žádná data neměla ovlivňovat druhou a může se vyskytovat souběžně. Stručně řečeno, operace na jedné databázi by měla začít, když se dokončí operace na první databázi. To znamená, že pokud jsou dvě operace prováděny na dvou různých databázích, nemusí mít vliv na vzájemnou hodnotu. V případě transakcí, kdy dojde ke dvěma nebo více transakcím současně, by měla zůstat zachována konzistence. Jakékoli změny, ke kterým dojde v jakékoli konkrétní transakci, neuvidí ostatní transakce, dokud změna nebude potvrzena v paměti.
Příklad: Pokud dvě operace běží současně na dvou různých účtech, pak by hodnota obou účtů neměla být ovlivněna. Hodnota by měla zůstat trvalá. Jak můžete vidět na níže uvedeném diagramu, účet A provádí transakce T1 a T2 na účty B a C, ale oba se provádějí nezávisle, aniž by se navzájem ovlivňovaly. Je známá jako izolace.
4) Trvanlivost
Trvanlivost zajišťuje stálost něčeho. V DBMS termín trvanlivost zajišťuje, že se data po úspěšném provedení operace stanou trvalými v databázi. Trvanlivost dat by měla být tak dokonalá, že i když systém selže nebo povede k havárii, databáze stále přežije. Pokud se však ztratí, stane se odpovědností správce obnovy za zajištění trvanlivosti databáze. Pro potvrzení hodnot je nutné použít příkaz COMMIT pokaždé, když provedeme změny.
Proto vlastnost ACID DBMS hraje zásadní roli při udržování konzistence a dostupnosti dat v databázi.
Jednalo se tedy o přesné zavedení vlastností ACID v DBMS. O těchto vlastnostech jsme hovořili také v sekci transakce.