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 joustavan avain/arvovaraston lähestymistavan hyväksi. Tämä jäsentämätön lähestymistapa dataan vaatii vaihtoehdon ACID-mallille: BASE-mallin.
ACID-mallin perusperiaatteet
ACID-mallilla on neljä perusperiaatetta:
- Tapahtumien atomicity varmistaa, että jokainen tietokantatapahtuma on yksittäinen yksikkö, joka ottaa käyttöön "kaikki tai ei mitään" -lähestymistavan. Jos jokin tapahtuman lauseke epäonnistuu, koko tapahtuma peruutetaan.
- Relaatiotietokannat varmistavat myös jokaisen tapahtuman yhdenmukaisuuden tietokannan liiketoimintasääntöjen kanssa. Jos jokin atomitapahtuman elementti häiritsisi tietokannan johdonmukaisuutta, koko tapahtuma epäonnistuu.
- Tietokantakone pakottaa eristyksen useiden samanaikaisesti tai lähes samaan aikaan tapahtuvien tapahtumien välillä. Jokainen tapahtuma tapahtuu joko ennen jokaista muuta tapahtumaa tai sen jälkeen, ja tapahtuman alussa näkemää tietokannan näkymää muuttaa vain tapahtuma itse ennen sen tekemistä. Mikään tapahtuma ei saa koskaan nähdä toisen tapahtuman välituotetta.
- 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, joka tunnetaan asianmukaisesti BASE-mallina. Tämä malli ottaa huomioon NoSQL:n tarjoaman joustavuuden ja samank altaiset lähestymistavat jäsentämättömän tiedon hallintaan ja kuratointiin. BASE koostuu kolmesta periaatteesta:
- Perussaatavuus NoSQL-tietokantalähestymistapa keskittyy tietojen saatavuuteen myös useiden vikojen esiintyessä. Se saavuttaa tämän käyttämällä erittäin hajautettua lähestymistapaa tietokannan hallintaan. Sen sijaan, että ylläpidettäisiin yhtä suurta tietovarastoa ja keskittyisivät tämän varaston vikasietoisuuteen, NoSQL-tietokannat levittävät tietoja moniin tallennusjärjestelmiin, joissa on korkea replikointiaste. Siinä epätodennäköisessä tapauksessa, että vika häiritsee pääsyä tietosegmenttiin, tämä ei välttämättä johda täydelliseen tietokannan käyttökatkoihin.
- Soft State. BASE-tietokannat hylkäävät ACID-mallin johdonmukaisuusvaatimukset lähes kokonaan. Yksi BASE:n taustalla olevista peruskäsitteistä on, että tietojen johdonmukaisuus on kehittäjän ongelma, eikä tietokannan pitäisi käsitellä sitä.
- Eventual Consistency Ainoa vaatimus, joka NoSQL-tietokannoilla on johdonmukaisuuden suhteen, on vaatia, että jossain vaiheessa tulevaisuudessa tiedot konvergoisivat yhdenmukaiseen tilaan. Mitään takuita ei kuitenkaan anneta siitä, milloin tämä tapahtuu. Tämä on täydellinen poikkeama ACID:n välittömästä johdonmukaisuusvaatimuksesta, joka kieltää tapahtuman suorittamisen, ennen kuin edellinen tapahtuma on suoritettu ja tietokanta on konvergoitunut yhdenmukaiseen tilaan.
BASE:ssa perussaatavuus voi tarkoittaa, että et edes hallitse tietolähteitä. Voit esimerkiksi linkittää julkisiin tietokokonaisuuksiin osana työtäsi.
Suhteellisia käyttötapauksia
BASE-malli ei sovi 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 riippuvat erittäin strukturoidusta tiedosta, jonka tulot ja lähdöt ovat ennakoitavissa. Näin ollen henkilöstötietokannat, vähittäiskaupan tietokannat ja sähköiset potilastiedot hyötyvät ACID:n tarjoamasta tehokkaasta sisäisestä yhdenmukaisuuden tarkistuksesta.
BASE-ratkaisut ovat kuitenkin parempia sumeisiin aiheisiin, kuten tunneanalyysiin. Esimerkiksi BASE-rakenteinen projekti voisi skannata Twitter-syötteen etsiessään sanoja, jotka ilmaisevat tunteita tietyn hashtagin perusteella. Twitter-syöte ei ole hyvin jäsennelty tai paikallisesti muotoiltu, mutta tietovirta tarjoaa kyselyihin ohjelmoidut tiedot, vaikka kyseisten tietojen laajuus ja luonne eivät ole selkeästi rajattuja.