DBMS on tietojen hallinta, jonka pitäisi pysyä integroituna, kun siihen tehdään muutoksia. Tämä johtuu siitä, että jos tietojen eheys vaikuttaa, koko data häiriintyy ja vioittuu. Siksi tietojen eheyden säilyttämiseksi tietokannan hallintajärjestelmässä on kuvattu neljä ominaisuutta, jotka tunnetaan nimellä HAPPO ominaisuuksia. ACID-ominaisuudet on tarkoitettu tapahtumalle, joka käy läpi eri tehtäväryhmän, ja siellä tulemme näkemään ACID-ominaisuuksien roolin.
Tässä osiossa opimme ja ymmärrämme ACID-ominaisuuksia. Opimme mitä nämä kiinteistöt tarkoittavat ja mihin kutakin kiinteistöä käytetään. Ymmärrämme myös ACID-ominaisuudet joidenkin esimerkkien avulla.
ACID-ominaisuudet
ACID-termin laajennus määrittelee:
1) Atomisuus
Termi atomisuus määrittelee, että data pysyy atomina. Se tarkoittaa, että jos datalle suoritetaan jokin toiminto, se joko tulee suorittaa tai suorittaa kokonaan tai sitä ei pitäisi suorittaa ollenkaan. Se tarkoittaa lisäksi, että toimintoa ei saa katkaista väliin tai suorittaa osittain. Jos tapahtumalle suoritetaan operaatioita, toiminto tulee suorittaa kokonaan eikä osittain.
Esimerkki: Jos Remolla on tilillä A tilillään 30 dollaria, josta hän haluaa lähettää 10 dollaria Sheeron tilille, joka on B. Tilillä B on jo 100 dollaria. Kun 10 dollaria siirretään tilille B, summasta tulee 110 dollaria. Nyt tehdään kaksi operaatiota. Yksi on 10 dollarin summa, jonka Remo haluaa siirtää, veloitetaan hänen tililtään A, ja sama summa hyvitetään tilille B eli Sheeron tilille. Mitä nyt tapahtuu - ensimmäinen veloitustoiminto suoritetaan onnistuneesti, mutta luottotoiminto kuitenkin epäonnistuu. Siten Remon tilillä A arvo on 20 dollaria ja Sheeron tilillä 100 dollaria, kuten se oli aiemmin.
Yllä olevasta kaaviosta voidaan nähdä, että 10 dollarin hyvityksen jälkeen summa on edelleen 100 dollaria tilillä B. Kyseessä ei siis ole ydintapahtuma.
Alla olevasta kuvasta näkyy, että sekä veloitus- että luottotoiminnot on tehty onnistuneesti. Kauppa on siis ydin.
Siten kun summa menettää atomiteettinsa, niin pankkijärjestelmissä tästä tulee valtava ongelma, ja siten atomiteetti on pankkijärjestelmien pääpaino.
2) Johdonmukaisuus
sana johdonmukaisuutta tarkoittaa, että arvo tulee säilyttää aina. Sisään DBMS , tietojen eheys tulee säilyttää, mikä tarkoittaa, että jos tietokantaan tehdään muutos, se tulee säilyttää aina. Transaktioiden tapauksessa tietojen eheys on erittäin tärkeää, jotta tietokanta pysyy yhtenäisenä ennen tapahtumaa ja sen jälkeen. Tietojen tulee aina olla oikein.
Esimerkki:
Yllä olevassa kuvassa on kolme tiliä, A, B ja C, joissa A suorittaa tapahtuman T yksitellen molemmille B & C:lle. Tapahtuu kaksi toimintoa, eli Debit ja Credit. Tili A veloittaa ensin 50 dollaria tililtä B, ja B lukee tilin A summan 300 dollaria ennen tapahtumaa. Onnistuneen tapahtuman T jälkeen B:ssä käytettävissä oleva summa on 150 dollaria. Nyt A veloittaa 20 dollaria tililtä C, ja tuolloin C:n lukema arvo on 250 dollaria (tämä on oikein, koska 50 dollarin veloitus on onnistuneesti tehty B:ltä). Veloitus- ja hyvitystoiminto tililtä A tilille C on suoritettu onnistuneesti. Näemme, että tapahtuma on suoritettu onnistuneesti ja arvo on myös luettu oikein. Näin ollen tiedot ovat johdonmukaisia. Jos B:n ja C:n lukema arvo on 300 dollaria, mikä tarkoittaa, että tiedot ovat epäjohdonmukaisia, koska kun veloitustoiminto suoritetaan, se ei ole johdonmukaista.
3) Eristäminen
Termi 'eristäminen' tarkoittaa erottamista. DBMS:ssä eristäminen on tietokannan ominaisuus, jossa mikään data ei saa vaikuttaa toiseen tietokantaan ja saattaa esiintyä samanaikaisesti. Lyhyesti sanottuna yhden tietokannan toiminnan pitäisi alkaa, kun ensimmäisen tietokannan toiminto on valmis. Se tarkoittaa, että jos kaksi toimintoa suoritetaan kahdelle eri tietokannalle, ne eivät välttämättä vaikuta toistensa arvoon. Kun on kyse liiketoimista, joissa kaksi tai useampia tapahtumia tapahtuu samanaikaisesti, johdonmukaisuuden olisi säilytettävä. Muut tapahtumat eivät näe missä tahansa tietyssä tapahtumassa tapahtuvia muutoksia, ennen kuin muutosta ei ole vahvistettu muistissa.
Esimerkki: Jos kaksi toimintoa on käynnissä samanaikaisesti kahdella eri tilillä, molempien tilien arvo ei saa vaikuttaa. Arvon tulee pysyä pysyvänä. Kuten alla olevasta kaaviosta näkyy, tili A tekee T1- ja T2-tapahtumia tileille B ja C, mutta molemmat suorittavat itsenäisesti vaikuttamatta toisiinsa. Se tunnetaan nimellä Isolation.
4) Kestävyys
Kestävyys takaa jonkin pysyvyyden. DBMS:ssä termi kestävyys varmistaa, että toiminnon onnistuneen suorituksen jälkeen tiedot pysyvät tietokannassa. Tietojen kestävyyden tulee olla niin täydellinen, että vaikka järjestelmä epäonnistuu tai johtaisi kaatumiseen, tietokanta säilyy silti. Jos se kuitenkin katoaa, siitä tulee palautuspäällikön vastuulle tietokannan kestävyyden varmistamisesta. Arvojen vahvistamiseen on käytettävä COMMIT-komentoa aina, kun teemme muutoksia.
Siksi DBMS:n ACID-ominaisuudella on tärkeä rooli tietokannan tietojen johdonmukaisuuden ja saatavuuden ylläpitämisessä.
Siten se oli tarkka ACID-ominaisuuksien käyttöönotto DBMS:ssä. Olemme keskustelleet näistä kiinteistöistä myös tapahtumaosiossa.