ACID: n hylkääminen BASE-tietokannan suunnittelussa

Relaatiotietokannat on suunniteltu luotettavasti ja johdonmukaisesti. Kehittäneet insinöörit keskittyivät transaktiomalliin, joka takaa, että ACID-mallin neljä periaatetta säilytetään aina. Uuden strukturoimattoman tietokantomallin kynnys on kuitenkin kääntämässä ACID: n päähän. NoSQL-tietokantamalli irrottaa erittäin jäsennellyn relaatiomallin joustavan avain / arvon tallennusmallin hyväksi. Tämä epäjohdonmukainen tiedonsiirto edellyttää vaihtoehtoa ACID-mallille: BASE-mallin.

ACID-mallin peruskäsitteet

ACID-mallissa on neljä perusperiaatetta:

Liiketoimien atomisuus varmistaa, että jokainen tietokantakauppa on yksi yksikkö, joka toteuttaa "kaiken tai ei mitään" -menetelmän toteutukseen. Jos tapahtuman jokin lausuma epäonnistuu, koko tapahtuma käännetään takaisin.

Relaatiotietokannat varmistavat myös kunkin liiketoimen yhdenmukaisuuden tietokannan liiketoimintasääntöjen kanssa. Jos jokin atomi-tapahtuman elementti häiritsisi tietokannan johdonmukaisuutta, koko tapahtuma epäonnistuu.

Tietokantamoottori pakottaa eristämisen useiden samanaikaisesti tai lähiaikoina olevien tapahtumien välillä. Jokainen tapahtuma tapahtuu joko ennen tai jälkeen joka toinen tapahtuma ja tietokannan näkymä, jonka tapahtuma havaitsee sen alussa, muuttaa vain tapahtuma itse ennen sen tekemistä. Kaupan ei pitäisi koskaan nähdä toisen liiketoimen välituotteita.

Lopullinen ACID-periaate, kestävyys , varmistaa, että kun tapahtuma on sitoutunut tietokantaan, se pysyy pysyvästi varmuuskopioiden ja tapahtumalokien avulla. Epäonnistumisen yhteydessä näitä mekanismeja voidaan käyttää palauttamaan sitovat tapahtumat.

Perusperiaatteet BASE

Toisaalta NoSQL-tietokannat käsittelevät tilanteita, joissa ACID-malli on ylenmääräinen tai haittaisi tietokannan toimintaa. Sen sijaan NoSQL tukeutuu pehmeämpään malliin, joka tunnetaan sopivasti BASE-mallina. Tämä malli tukee NoSQL: n tarjoamaa joustavuutta ja samanlaisia ​​lähestymistapoja, joita ei ole jäsenneltyjen tietojen hallintaan ja kuratointiin. BASE koostuu kolmesta periaatteesta:

Basic Availability . NoSQL-tietokantapohjainen lähestymistapa keskittyy tietojen saatavuuteen jopa useiden virheiden yhteydessä. Se saavuttaa tämän käyttämällä hyvin hajautettua lähestymistapaa tietokannan hallintaan. Sen sijaan, että ylläpidettäisiin yhtä suurta tietovarastoa ja keskittyisivät kyseisen tallennuksen vikatilanteeseen, NoSQL-tietokannat levittävät tietoja useisiin tallennusjärjestelmiin, joissa on korkea replikointi. Jos epätodennäköinen tapaus, että vika häiritsee pääsyä tietoryhmään, tämä ei välttämättä johda täydelliseen tietokannan katkeamiseen.

Pehmeä tila . BASE-tietokannat hylkäävät ACID-mallin johdonmukaisuusvaatimukset melko kokonaan. Yksi BASE: n peruskäsitteistä on se, että tietojen yhtenäisyys on kehittäjän ongelma, eikä tietokantaa tarvitse käsitellä.

Mahdollinen yhdenmukaisuus . Ainoa vaatimus, jonka mukaan NoSQL-tietokannat ovat johdonmukaisuuden suhteen, on vaatia, että tietyssä vaiheessa tulevaisuudessa tiedot konvergoituvat yhdenmukaiseen tilaan. Mitään takuita ei kuitenkaan ole, kun tämä tapahtuu. Tämä on täysin poissa ACID: n välitöntä johdonmukaisuusvaatimuksesta, joka kieltää transaktion suorittamisen vasta, kun aikaisempi transaktio on saatu päätökseen ja tietokanta on muuttunut yhtenäiseksi tilaksi.

BASE-malli ei ole asianmukainen kaikissa tilanteissa, mutta se on varmasti joustava vaihtoehto ACID-mallille tietokannoille, jotka eivät vaadi relaatiomallin tiukkaa noudattamista.