Relacijske baze podatkov so zasnovane z zanesljivostjo in doslednostjo v svojem jedru. Inženirji, ki so jih razvili, so se osredotočili na transakcijski model, ki zagotavlja, da so štiri načela modela ACID vedno ohranjena. Toda pojav novega nestrukturiranega modela baze podatkov postavlja ACID na glavo. Model podatkovne baze NoSQL se izogiba visoko strukturiranemu relacijskemu modelu v korist prilagodljivega pristopa shrambe ključ/vrednost. Ta nestrukturiran pristop k podatkom zahteva alternativo modelu ACID: model BASE.
Osnovna načela modela ACID
Obstajajo štiri osnovna načela modela ACID:
- atomičnost transakcij zagotavlja, da je vsaka transakcija baze podatkov ena sama enota, ki sprejme pristop "vse ali nič" za izvajanje. Če kateri koli stavek v transakciji ne uspe, se celotna transakcija povrne nazaj.
- Relacijske baze podatkov zagotavljajo tudi konsistentnost vsake transakcije s poslovnimi pravili baze podatkov. Če bi kateri koli element atomske transakcije motil doslednost baze podatkov, celotna transakcija ne uspe.
- Mehanizam baze podatkov uveljavlja izolacijo med več transakcijami, ki se zgodijo ob ali skoraj istem času. Vsaka transakcija se zgodi pred ali po vsaki drugi transakciji, pogled na bazo podatkov, ki jo transakcija vidi na začetku, pa spremeni le sama transakcija pred zaključkom. Nobena transakcija ne sme videti vmesnega produkta druge transakcije.
- Zadnje načelo ACID, trajnost, zagotavlja, da se transakcija, ko je enkrat predana bazi podatkov, trajno ohrani z uporabo varnostnih kopij in dnevnikov transakcij. V primeru okvare se lahko ti mehanizmi uporabijo za obnovitev odobrenih transakcij.
Temeljna načela BASE
Baze podatkov NoSQL po drugi strani zajemajo situacije, ko je model ACID pretiran ali bi dejansko oviral delovanje baze podatkov. Namesto tega se NoSQL opira na mehkejši model, ki je ustrezno znan kot model BASE. Ta model se prilagaja prilagodljivosti, ki jo ponujajo NoSQL in podobni pristopi k upravljanju in urejanju nestrukturiranih podatkov. BASE je sestavljen iz treh načel:
- Osnovna razpoložljivost Pristop baze podatkov NoSQL se osredotoča na razpoložljivost podatkov tudi ob prisotnosti več napak. To doseže z uporabo visoko porazdeljenega pristopa k upravljanju baz podatkov. Namesto da bi vzdrževale eno samo veliko shrambo podatkov in se osredotočale na toleranco napak te shrambe, baze podatkov NoSQL širijo podatke po številnih sistemih za shranjevanje z visoko stopnjo replikacije. V malo verjetnem primeru, da okvara prekine dostop do segmenta podatkov, to ne povzroči nujno popolnega izpada baze podatkov.
- Mehko stanje. Podatkovne baze BASE skoraj v celoti opuščajo zahteve glede skladnosti modela ACID. Eden od osnovnih konceptov BASE je, da je konsistentnost podatkov težava razvijalca in da je baza podatkov ne bi smela obravnavati.
- Eventual Consistency Edina zahteva, ki jo imajo baze podatkov NoSQL glede konsistentnosti, je zahteva, da se na neki točki v prihodnosti podatki konvergirajo v konsistentno stanje. Ni pa nobenih zagotovil o tem, kdaj se bo to zgodilo. To je popoln odmik od zahteve po takojšnji doslednosti ACID, ki prepoveduje izvedbo transakcije, dokler se predhodna transakcija ne zaključi in zbirka podatkov konvergira v konsistentno stanje.
V BASE lahko osnovna razpoložljivost pomeni, da ne nadzirate niti virov podatkov. Del svojega truda se lahko na primer povežete z javnimi zbirkami podatkov.
Primeri relativne uporabe
Model BASE ni primeren za vsako situacijo, je pa zagotovo prilagodljiva alternativa modelu ACID za baze podatkov, ki ne zahtevajo strogega upoštevanja relacijskega modela.
Optimalni primeri uporabe za baze podatkov, ki uporabljajo ACID, so odvisni od visoko strukturiranih podatkov s predvidljivimi vhodi in izhodi. Tako baze podatkov o človeških virih, maloprodajne baze podatkov in elektronski zdravstveni zapisi koristijo robustno preverjanje notranje doslednosti, ki ga ponuja ACID.
Vendar pa so rešitve BASE boljše za mehke teme, kot je analiza razpoloženja. Na primer, projekt s strukturo BASE bi lahko skeniral vir Twitterja in iskal besede, ki nakazujejo čustva na podlagi določene oznake hashtag. Vir Twitterja ni dobro strukturiran ali lokalno instanciran, vendar podatkovni tok ponuja informacije, ki so programirane v poizvedbe, tudi če obseg in narava teh podatkov nista natančno omejena.