Relacijske baze podataka su dizajnirane sa pouzdanošću i konzistentnošću u svojoj srži. Inženjeri koji su ih razvili fokusirali su se na transakcijski model koji osigurava da se četiri principa ACID modela uvijek očuvaju. Međutim, pojava novog modela nestrukturirane baze podataka preokreće ACID. NoSQL model baze podataka izbjegava visoko strukturirani relacijski model u korist fleksibilnog pristupa spremištu ključeva/vrijednosti. Ovaj nestrukturirani pristup podacima zahtijeva alternativu ACID modelu: BASE model.
Osnovna načela ACID modela
Postoje četiri osnovna načela ACID modela:
- atomičnost transakcija osigurava da je svaka transakcija baze podataka jedna jedinica koja usvaja "sve ili ništa" pristup izvršenju. Ako bilo koji iskaz u transakciji ne uspije, cijela transakcija se poništava.
- Relacijske baze podataka također osiguravaju dosljednost svake transakcije sa poslovnim pravilima baze podataka. Ako bi bilo koji element atomske transakcije poremetio konzistentnost baze podataka, cijela transakcija propada.
- Mašina baze podataka nameće izolaciju između više transakcija koje se dešavaju u ili skoro u isto vreme. Svaka transakcija se događa prije ili nakon svake druge transakcije, a pogled na bazu podataka koji transakcija vidi na svom početku mijenja samo sama transakcija prije njenog zaključenja. Nijedna transakcija nikada ne bi trebala vidjeti međuproizvod druge transakcije.
- Konačni princip ACID-a, durability, osigurava da kada se transakcija preda u bazu podataka, ona je trajno sačuvana korištenjem rezervnih kopija i dnevnika transakcija. U slučaju neuspjeha, ovi mehanizmi se mogu koristiti za vraćanje izvršenih transakcija.
Osnovni principi BASE
NoSQL baze podataka, s druge strane, prihvataju situacije u kojima je ACID model pretjeran ili bi, u stvari, ometao rad baze podataka. Umjesto toga, NoSQL se oslanja na mekši model poznat, na odgovarajući način, kao BASE model. Ovaj model prilagođava fleksibilnost koju nudi NoSQL i slične pristupe upravljanju i kuriranju nestrukturiranih podataka. BASE se sastoji od tri principa:
- Osnovna dostupnost Pristup NoSQL bazi podataka fokusira se na dostupnost podataka čak iu prisustvu višestrukih grešaka. To postiže korištenjem visoko distribuiranog pristupa upravljanju bazom podataka. Umjesto da održavaju jedno veliko skladište podataka i fokusiraju se na toleranciju grešaka tog skladišta, NoSQL baze podataka šire podatke na mnoge sisteme skladištenja sa visokim stepenom replikacije. U malo vjerovatnom slučaju da kvar poremeti pristup segmentu podataka, to ne mora nužno rezultirati potpunim prekidom baze podataka.
- Soft State. BASE baze podataka prilično u potpunosti napuštaju zahtjeve konzistentnosti ACID modela. Jedan od osnovnih koncepata iza BASE-a je da je konzistentnost podataka problem programera i da se njime ne treba baviti baza podataka.
- Eventualna konzistentnost Jedini zahtjev koji NoSQL baze podataka imaju u pogledu konzistentnosti je zahtjev da se u nekom trenutku u budućnosti podaci konvergiraju u konzistentno stanje. Međutim, ne daju se garancije o tome kada će se to dogoditi. To je potpuno odstupanje od neposredne konzistentnosti zahtjeva ACID-a koji zabranjuje izvršavanje transakcije sve dok se prethodna transakcija ne završi i baza podataka ne konvergira u konzistentno stanje.
U BASE, osnovna dostupnost može značiti da čak ni ne kontrolirate izvore podataka. Na primjer, možete se povezati na javne skupove podataka za dio vašeg truda.
Relativni slučajevi upotrebe
BASE model nije prikladan za svaku situaciju, ali je svakako fleksibilna alternativa ACID modelu za baze podataka koje ne zahtijevaju striktno pridržavanje relacijskog modela.
Optimalni slučajevi upotrebe za baze podataka koje koriste ACID zavise od visoko strukturiranih podataka sa predvidljivim ulazima i izlazima. Dakle, baze podataka ljudskih resursa, maloprodajne baze podataka i elektronski medicinski kartoni imaju koristi od robusne interne provjere konzistentnosti koju ACID nudi.
Međutim, BASE rješenja su bolja za nejasne teme poput analize sentimenta. Na primjer, projekat sa strukturom BASE mogao bi skenirati Twitter feed tražeći riječi koje impliciraju emocije na osnovu određenog hashtag-a. Twitter feed nije dobro strukturiran ili lokalno instanciran, ali tok podataka nudi informacije koje su programirane u upite čak i ako opseg i priroda tih podataka nisu jasno ograničeni.