ACID on akronyymi, joka tarkoittaa Atomisuus (Atomicity), Konsistenssi (Consistency), Eristävyys (Isolation), ja Kestävyys (Durability). Kyberturvallisuuden kontekstissa ACID viittaa ominaisuuksiin, jotka takaavat luotettavat tapahtumat tietokantajärjestelmässä.
1. Atomisuus: Atomisuus varmistaa, että jokainen tapahtuma käsitellään yksikkönä, joka joko suoritetaan kokonaan tai ei ollenkaan. Tämä ominaisuus takaa, että jos mikään osa tapahtumasta epäonnistuu, tietokanta palaa alkutilaansa eikä muutoksia tehdä. Esimerkiksi, jos rahansiirto kahden pankkitilin välillä epäonnistuu puolivälissä, koko tapahtuma peruutetaan ja tilit palautetaan alkuperäiseen tilaansa.
2. Konsistenssi: Konsistenssi varmistaa, että tietokanta pysyy johdonmukaisessa tilassa ennen ja jälkeen tapahtuman suorittamisen. Se estää datan korruptoitumisen tai eheyden ongelmat. Tämä ominaisuus varmistaa, että vain kelvollinen data kirjoitetaan tietokantaan ja kaikki eheyssäännöt täyttyvät. Esimerkiksi, jos tietokanta vaatii, että kaikki sähköpostiosoitteet ovat yksilöllisiä, konsistenssiominaisuus varmistaa, että yritykset rikkoa tätä sääntöä hylätään, mikä säilyttää datan eheyden.
3. Eristävyys: Eristävyys varmistaa, että useiden samanaikaisten tapahtumien suorittaminen ei vaikuta lopputulokseen. Jokainen tapahtuma on itsenäinen eikä häiritse muita käynnissä olevia tapahtumia. Tämä ominaisuus estää ilmiön, jota kutsutaan "likaisiksi luennoiksi" tai "kadonneiksi päivityksiksi", jossa yksi tapahtuma lukee dataa, jota toinen tapahtuma muokkaa. Eristävyystasot, kuten Read Uncommitted, Read Committed, Repeatable Read ja Serializable, määrittävät tietokantajärjestelmän tarjoaman eristävyyden asteen.
4. Kestävyys: Kestävyys takaa, että vahvistetut tapahtumat säilyvät järjestelmässä jopa järjestelmän vian tai kaatumisen sattuessa. Tämä ominaisuus varmistaa, että kun tapahtuma on vahvistettu, sen muutokset tallennetaan pysyvästi tietokantaan ja ne säilyvät mahdollisista myöhemmistä vioista huolimatta. Kestävyys saavutetaan tyypillisesti kirjoittamalla tapahtumalokin tiedot vakaaseen tallennustilaan, kuten levylle. Näitä lokitietoja voidaan käyttää palauttamaan tietokanta johdonmukaiseen tilaan vian jälkeen.
Jotta tietokantatapahtumien luotettavuus ja turvallisuus voidaan varmistaa, on tärkeää noudattaa tiettyjä ehkäisyvinkkejä:
Valitse Tietokannan Hallintajärjestelmä (DBMS), joka täyttää ACID-ominaisuudet: Kun hallitaan arkaluonteisia tai kriittisiä tietoja, on ratkaisevan tärkeää valita DBMS, joka tukee ACID-ominaisuuksia. Suosittuja ACID-yhteensopivia DBMS:ia ovat esimerkiksi Oracle, Microsoft SQL Server ja PostgreSQL.
Varmuuskopioi tietokannoittain säännöllisesti: Tietokantojen säännöllinen varmuuskopiointi on ratkaisevan tärkeää, jotta tiedot voidaan palauttaa vaarantamatta järjestelmän vikatilanteessa. Nämä varmuuskopiot tulee säilyttää turvallisesti luvattoman pääsyn tai häviämisen estämiseksi.
Toteuta pääsynhallinta ja valvonta: Pääsynhallinnan toteuttaminen auttaa estämään luvattoman pääsyn tietokantaan ja ylläpitämään datan eheyttä ja johdonmukaisuutta. Valvontamekanismien tulisi myös olla käytössä havaitsemaan ja reagoimaan epäilyttäviin toimintoihin tai poikkeavuuksiin.
Tässä on muutamia liittyviä termejä, jotka ovat tärkeitä ymmärtää ACIDin yhteydessä:
CAP teoreema, joka tunnetaan myös nimellä Brewerin teoreema, toteaa, että hajautetussa tietokonejärjestelmässä ei ole mahdollista samanaikaisesti taata kaikkia seuraavia ominaisuuksia: Konsistenssi, Saatavuus ja Osion sieto. CAP teoreeman mukaan verkon pirstoutumisen sattuessa hajautetun järjestelmän on valittava konsistenssin ja saatavuuden välillä. Tällä teoreemalla on merkittäviä vaikutuksia hajautettujen tietokantojen suunnitteluun ja toimintaan.
Hajautettu tietokanta on tietokanta, joka koostuu kahdesta tai useammasta tiedostosta, jotka sijaitsevat eri paikoissa ja ovat yhteydessä tietoliikenneverkon kautta. Tämän tyyppinen tietokanta mahdollistaa organisaatioiden tallentaa ja hallita tietoja useissa paikoissa, tarjoten etuja kuten parantunut suorituskyky, lisääntynyt skaalautuvuus ja vikakestävyys. Kuitenkin, datan johdonmukaisuuden hallinta ja synkronoinnin varmistaminen paikkojen välillä voi olla haastavaa hajautetuissa tietokantajärjestelmissä.