ACID suojaa tietokannan tietoja
Tietokannan suunnittelu ACID-malli on yksi vanhimmista ja tärkeimmistä tietokantojen teoriasta. Siinä asetetaan neljä tavoitetta, jotka jokaisen tietokannan hallintajärjestelmän on pyrittävä saavuttamaan: atomisuus, johdonmukaisuus, eristäminen ja kestävyys. Relaatiotietokanta, joka ei täytä jotain näistä neljästä tavoitteesta, ei voida pitää luotettavana. Tietokanta, jolla on nämä ominaisuudet, pidetään ACID-yhteensopivana.
ACID määritelty
Otetaan hetki tarkastella näitä ominaisuuksia yksityiskohtaisesti:
- Atomicity toteaa, että tietokannan muutosten on noudatettava "kaikkia tai ei mitään" sääntöä. Jokainen liiketoimi sanotaan olevan "atomi". Jos jokin liiketoimen osa epäonnistuu, koko tapahtuma epäonnistuu. On kriittistä, että tietokannanhallintajärjestelmä ylläpitää liiketoimien ydinvoimaa kaikesta DBMS: stä, käyttöjärjestelmästä tai laitteistovirheestä huolimatta.
- Johdonmukaisuus tarkoittaa , että tietokantaan kirjoitetaan vain kelvollisia tietoja. Jos jostain syystä toteutetaan tapahtuma, joka rikkoo tietokannan johdonmukaisuutta koskevia sääntöjä, koko tapahtuma käännetään takaisin ja tietokanta palautetaan tilaan, joka on näiden sääntöjen mukainen. Toisaalta, jos tapahtuma onnistuu, se vie tietokannan yhdestä valtiosta, joka on sääntöjen mukainen toiselle valtiolle, joka on myös sääntöjen mukainen.
- Eristäminen edellyttää, että samanaikaisesti esiintyvät useat tapahtumat eivät vaikuta toistensa toteuttamiseen. Jos esimerkiksi Joe laskee tapahtumaa tietokantaa vastaan samaan aikaan, kun Mary antaa toisen tapahtuman, molempien tapahtumien pitäisi toimia tietokannassa eristyksissä. Tietokannan pitäisi joko suorittaa Joein koko tapahtuma ennen Mariaan suorittamista tai päinvastoin. Tämä estää Joe'n transaktiota lukemasta välituotteita, jotka on tuotettu osana Maryn tapahtumaa sivuvaikutuksena, joka ei lopulta ole sitoutunut tietokantaan. Huomaa, että eristysominaisuus ei takaa, mikä liiketoimi suoritetaan ensin - vain, että liiketoimet eivät häiritse toisiaan
- Kestävyys varmistaa, että tietokantaan sitoutuneita tapahtumia ei menetetä. Kestävyys varmistetaan käyttämällä tietokannan varmuuskopioita ja tapahtumalokia, jotka helpottavat sitoutuneiden tapahtumien palauttamista huolimatta mahdollisista myöhemmistä ohjelmisto- tai laitteistovirheistä.
Miten ACID toimii käytännössä
Tietokannan ylläpitäjät käyttävät useita strategioita ACID: n noudattamiseksi.
Järjestelmää käytetään ydinvoiman ja kestävyyden varmistamiseen, jossa kirjautumisnapsaus (WAL), jossa jokin tapahtumatieto kirjoitetaan ensin lokiin, joka sisältää sekä redo- että undo-tiedot. Tämä takaa sen, että tietokannan voi tarkistaa minkä tahansa tietokannan epäonnistumisen kirjaa ja vertaa sen sisältöä tietokannan tilaan.
Toinen menetelmä, jota käytetään käsittelemään atomia ja kestävyyttä, on varjostus , jossa varjosivu luodaan, kun dataa on muutettava. Kyselyn päivitykset kirjoitetaan varjosivulle eikä tietokannan todellisiin tietoihin. Tietokanta itse muuttuu vain, kun muokkaus on valmis.
Toista strategiaa kutsutaan kaksivaiheiseksi sitoutumisprotokollaksi , joka on erityisen hyödyllinen hajautetuissa tietokantajärjestelmissä. Tämä protokolla erottaa pyynnön muokata dataa kahteen vaiheeseen: sitoutumispyyntövaihe ja sitoutumisvaihe. Pyyntövaiheessa verkon kaikki DBMS: t, joihin tapahtuma vaikuttaa, on vahvistettava, että ne ovat saaneet sen ja että ne pystyvät suorittamaan tapahtuman. Kun kaikki asiaankuuluvat DBMS-tietokannat vastaanotetaan, lähetysvaihe täydentää, missä tietoja todella muutetaan.