Relaatiotietokannat on suunniteltu luotettavuuden ja johdonmukaisuuden ytimessä. Niitä kehittäneet insinöörit keskittyivät transaktiomalliin, joka varmistaa, että ACID-mallin neljä periaatetta säilyvät aina. Uuden jäsentämättömän tietokantamallin tulo kuitenkin kääntää ACID:n päälaelleen. NoSQL-tietokantamalli välttelee erittäin jäsenneltyä relaatiomallia ja suosii joustavaa avainarvojen tallennustapaa. Tämä jäsentämätön lähestymistapa dataan vaatii ACID-mallille vaihtoehdon: BASE-mallin.
ACID-mallin perusteet
ACID-mallissa on neljä perusperiaatetta:
- The atomisuus Tapahtumat varmistavat, että jokainen tietokantatapahtuma on yksittäinen kokonaisuus, joka toteuttaa «kaikki tai ei mitään» -lähestymistavan. Jos jokin tapahtuman lausunto epäonnistuu, koko tapahtuma peruutetaan.
- Relaatiotietokannat tarjoavat myös johdonmukaisuutta jokaisesta tapahtumasta tietokannan liiketoimintasäännöillä. Jos atomitapahtuman elementti häiritsisi tietokannan johdonmukaisuutta, koko tapahtuma epäonnistuu.
- Tietokantamoottori pakottaa eristys useiden samaan aikaan tai samaan aikaan tapahtuvien liiketoimien välillä. Jokainen tapahtuma tapahtuu ennen jokaista muuta tapahtumaa tai sen jälkeen, ja tietokannan näkymää, joka näkee tapahtuman alussa, muuttaa vain tapahtuma itse ennen sulkemista. Mikään tapahtuma ei saa koskaan nähdä toisen tapahtuman välikappaletta.
- Lopullinen ACID-periaate, kestävyys, varmistaa, että kun tapahtuma on sitoutunut tietokantaan, se säilyy pysyvästi varmuuskopioiden ja tapahtumalokien avulla. Vian sattuessa näitä mekanismeja voidaan käyttää sitoutuneiden tapahtumien palauttamiseen.
BASE:n perusperiaatteet
NoSQL-tietokannat sen sijaan ottavat huomioon tilanteet, joissa ACID-malli on ylivoimainen tai itse asiassa estäisi tietokannan toimintaa. Sen sijaan NoSQL luottaa pehmeämpään malliin, jota kutsutaan osuvasti BASE-malliksi. Tämä malli ottaa huomioon NoSQL:n tarjoaman joustavuuden ja samankaltaiset lähestymistavat jäsentämättömän tiedon hallintaan ja kuratointiin. BASE koostuu kolmesta periaatteesta:
- Perussaatavuus† NoSQL-tietokantalähestymistapa keskittyy tiedon saatavuuteen myös useiden vikojen yhteydessä. Tämä saavutetaan käyttämällä erittäin hajautettua lähestymistapaa tietokannan hallintaan. Sen sijaan, että ylläpidettäisiin yhtä suurta tietovarastoa ja keskittyisivät sen vikasietoisuuteen, NoSQL-tietokannat levittävät tietoja moniin tallennusjärjestelmiin korkealla replikointiasteella. Siinä epätodennäköisessä tapauksessa, että vika häiritsee pääsyä datasegmenttiin, se ei välttämättä johda täydelliseen tietokannan käyttökatkoihin.
- pehmeä tila† BASE-tietokannat hylkäävät lähes kokonaan ACID-mallin johdonmukaisuusvaatimukset. Yksi BASE:n taustalla olevista peruskäsitteistä on, että tietojen johdonmukaisuus on kehittäjän ongelma, eikä tietokannan pitäisi käsitellä sitä.
- Mikä tahansa johdonmukaisuus† Ainoa vaatimus, joka NoSQL-tietokannoilla on johdonmukaisuuden suhteen, on se, että tiedot konvergoivat yhtenäiseen tilaan jossain vaiheessa tulevaisuudessa. Mitään takeita ei kuitenkaan ole siitä, milloin tämä tapahtuu. Tämä poikkeaa täydellisesti ACID:n välittömästä johdonmukaisuusvaatimuksesta, joka estää tapahtumaa suorittamasta, kunnes edellinen tapahtuma on suoritettu ja tietokanta on konvergoinut yhdenmukaiseen tilaan.
BASE:ssa perussaatavuus voi tarkoittaa, että et voi edes hallita tietolähteitä. Voit esimerkiksi linkittää julkisiin tietojoukkoihin osana työtäsi.
Suhteellisia käyttötapauksia
BASE-malli ei sovellu kaikkiin tilanteisiin, mutta se on varmasti joustava vaihtoehto ACID-mallille tietokantoihin, jotka eivät vaadi tiukkaa relaatiomallin noudattamista. ACID:tä käyttävien tietokantojen optimaaliset käyttötapaukset perustuvat erittäin strukturoituun tietoon, jonka tulot ja lähdöt ovat ennakoitavissa. Esimerkiksi työntekijöiden tietokannat, vähittäiskaupan tietokannat ja sähköiset terveystiedot hyötyvät ACID:n tarjoamasta tehokkaasta sisäisestä yhdenmukaisuuden tarkistuksesta. BASE-ratkaisut ovat kuitenkin parempia epämääräisiin aiheisiin, kuten tunneanalyysiin. Esimerkiksi BASE-rakenteinen projekti voi etsiä Twitter-syötteestä sanoja, jotka ilmaisevat tunteita tietyn hashtagin perusteella. Twitter-syöte ei ole hyvin jäsennelty tai paikallisesti instantoitu, mutta tietovirta tarjoaa kyselyihin ohjelmoitua tietoa, vaikka datan laajuutta ja luonnetta ei olisikaan määritelty selkeästi.