NoSQL vodič: Što je, vrste NoSQL baza podataka i primjer
Što je NoSQL?
NoSQL Baza podataka je nerelacijski sustav upravljanja podacima koji ne zahtijeva fiksnu shemu. Izbjegava spojeve i lako se skalira. Glavna svrha korištenja NoSQL baze podataka je za distribuirane pohrane podataka s ogromnim potrebama za pohranu podataka. NoSQL se koristi za velike podatke i web aplikacije u stvarnom vremenu. Na primjer, tvrtke poput Twittera, Facebooka i Googlea prikupljaju terabajte korisničkih podataka svaki dan.
NoSQL baza podataka označava "Ne samo SQL" ili "Ne SQL". Iako bi bolji izraz bio "NoREL", NoSQL se uhvatio. Carl Strozz predstavio je NoSQL koncept 1998.
Tradicionalni RDBMS koristi SQL sintaksu za pohranjivanje i dohvaćanje podataka za daljnje uvide. Umjesto toga, NoSQL sustav baze podataka obuhvaća širok raspon tehnologija baza podataka koje mogu pohraniti strukturirane, polustrukturirane, nestrukturirane i polimorfne podatke. Hajdemo razumjeti NoSQL s dijagramom u ovom vodiču za NoSQL bazu podataka:
Zašto NoSQL?
Koncept NoSQL baza podataka postao je popularan među internetskim divovima kao što su Google, Facebook, Amazon, itd. koji rade s velikim količinama podataka. Vrijeme odziva sustava postaje sporo kada koristite RDBMS za velike količine podataka.
Da bismo riješili ovaj problem, mogli bismo "skalirati" svoje sustave nadogradnjom postojećeg hardvera. Ovaj proces je skup.
Alternativa ovom problemu je raspodijeliti opterećenje baze podataka na više hostova kad god se opterećenje poveća. Ova metoda je poznata kao "skaliranje".
NoSQL baza podataka nije relacijska, pa se bolje skalira od relacijskih baza podataka jer su dizajnirane imajući na umu web aplikacije.
Kratka povijest NoSQL baza podataka
- 1998. - Carlo Strozzi koristi izraz NoSQL za svoju laganu relacijsku bazu podataka otvorenog koda
- 2000- Graf baza podataka Neo4j je pokrenut
- 2004. - Lansiran je Google BigTable
- 2005- CouchDB je pokrenut
- 2007- Znanstveni rad na temu Amazon Dinamo je pušten
- 2008- Facebookovi otvoreni izvori Cassandra projekt
- 2009 - Ponovno je uveden pojam NoSQL
Značajke NoSQL-a
Nerelacijski
- NoSQL baze podataka nikada ne slijede relacijski model
- Nikada nemojte davati tablice s ravnim zapisima u fiksnim stupcima
- Radite sa samostalnim agregatima ili BLOB-ovima
- Ne zahtijeva objektno-relacijsko mapiranje i normalizaciju podataka
- Nema složenih značajki kao što su jezici upita, planeri upita, spajanja s referentnim integritetom, ACID
Bez sheme
- NoSQL baze podataka ili su bez shema ili imaju opuštene sheme
- Ne zahtijevaju nikakvu definiciju sheme podataka
- Nudi heterogene strukture podataka u istoj domeni

Jednostavan API
- Nudi sučelja jednostavna za korištenje za pohranu i upite podataka
- API-ji omogućuju manipulaciju podacima niske razine i metode odabira
- Tekstualni protokoli koji se uglavnom koriste s HTTP REST-om s JSON-om
- Uglavnom se ne koristi standardni NoSQL upitni jezik
- Web-omogućene baze podataka rade kao internetske usluge
distribuiran
- Višestruke NoSQL baze podataka mogu se izvršavati na distribuirani način
- Nudi mogućnosti automatskog skaliranja i preklopa
- Često se ACID koncept može žrtvovati zbog skalabilnosti i propusnosti
- Uglavnom nema sinkrone replikacije između distribuiranih čvorova. Asinkrona multi-master replikacija, peer-to-peer, HDFS replikacija
- Samo osigurava konačnu dosljednost
- Dijeljeno ništa Architektura. To omogućuje manju koordinaciju i veću distribuciju.

Vrste NoSQL baza podataka
NoSQL baze podataka uglavnom se kategoriziraju u četiri tipa: par ključ-vrijednost, orijentirani na stupce, temeljeni na grafikonu i orijentirani na dokument. Svaka kategorija ima svoje jedinstvene atribute i ograničenja. Nijedna od gore navedenih baza podataka nije bolja za rješavanje svih problema. Korisnici bi trebali odabrati bazu podataka na temelju svojih potreba proizvoda.
Vrste NoSQL baza podataka:
- Na temelju para ključ-vrijednost
- Graf orijentiran na stupce
- Na temelju grafikona
- Orijentiran na dokumente
Na temelju para ključeva vrijednosti
Podaci se pohranjuju u parovima ključ/vrijednost. Dizajniran je na takav način da može nositi s puno podataka i velikim opterećenjem.
Baze podataka za pohranu para ključ-vrijednost pohranjuju podatke kao hash tablicu gdje je svaki ključ jedinstven, a vrijednost može biti JSON, BLOB (Binary Large Objects), niz itd.
Na primjer, par ključ-vrijednost može sadržavati ključ kao što je "Web stranica" povezan s vrijednošću kao što je "Guru99".
To je jedan od najosnovnijih primjera NoSQL baze podataka. Ova vrsta NoSQL baze podataka koristi se kao zbirka, rječnici, asocijativni nizovi itd. Pohrane ključnih vrijednosti pomažu razvojnom programeru da pohrani podatke bez sheme. Najbolje funkcioniraju za sadržaj košarice.
Redis, Dynamo, Riak neki su NoSQL primjeri baza podataka pohrane ključ-vrijednost. Svi se temelje na AmazonDinamov list.
Na temelju stupaca
Baze podataka usmjerene na stupce rade na stupcima i temelje se na Googleovom BigTable papiru. Svaki stupac se zasebno tretira. Vrijednosti baza podataka s jednim stupcem pohranjuju se kontinuirano.

Oni pružaju visoku izvedbu na upitima agregacije kao što su SUM, COUNT, AVG, MIN itd. jer su podaci lako dostupni u stupcu.
NoSQL baze podataka temeljene na stupcima naširoko se koriste za upravljanje skladištima podataka, Poslovna inteligencija, CRM, Lisni katalozi knjižnice,
HBase, Cassandra, HBase, Hypertable primjeri su NoSQL upita baze podataka temeljene na stupcima.
Orijentiran na dokumente
NoSQL DB orijentiran na dokumente pohranjuje i dohvaća podatke kao par ključeva vrijednosti, ali se dio vrijednosti pohranjuje kao dokument. Dokument je pohranjen u JSON ili XML formatu. DB razumije vrijednost i može se postaviti upit.
Na ovom dijagramu s vaše lijeve strane možete vidjeti da imamo retke i stupce, a s desne strane imamo bazu podataka dokumenata koja ima strukturu sličnu JSON-u. Sada za relacijsku bazu podataka, morate znati koje stupce imate i tako dalje. Međutim, za bazu podataka dokumenata imate pohranu podataka poput JSON objekta. Ne morate definirati što ga čini fleksibilnim.
Vrsta dokumenta uglavnom se koristi za CMS sustave, platforme za blogove, analitiku u stvarnom vremenu i aplikacije za e-trgovinu. Ne bi se trebao koristiti za složene transakcije koje zahtijevaju višestruke operacije ili upite prema različitim skupnim strukturama.
Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, popularni su Dokumenti potječu DBMS sustavi.
Na temelju grafikona
Baza podataka tipa grafikona pohranjuje entitete kao i odnose među tim entitetima. Entitet je pohranjen kao čvor s odnosom kao rubovima. Rub daje odnos između čvorova. Svaki čvor i rub imaju jedinstveni identifikator.
U usporedbi s relacijskom bazom podataka u kojoj su tablice labavo povezane, Graph baza podataka po svojoj je prirodi višerelacijska. Odnos prijelaza je brz jer su već uhvaćeni u DB i nema potrebe za njihovim izračunavanjem.
Graph base baza podataka uglavnom se koristi za društvene mreže, logistiku, prostorne podatke.
Neo4J, beskonačni graf, OrientDB, FlockDB neke su popularne baze podataka temeljene na grafikonima.
Alati mehanizma upita za NoSQL
Najčešći mehanizam za dohvaćanje podataka je dohvaćanje vrijednosti temeljeno na REST-u na temelju njezinog ključa/ID-a s GET resursom
Document store Database nudi teže upite jer razumiju vrijednost u paru ključ-vrijednost. Na primjer, CouchDB omogućuje definiranje pogleda s MapReduce
Što je CAP teorem?
CAP teorem također se naziva Brewerov teorem. Navodi se da je nemoguće da distribuirana pohrana podataka ponudi više od dva od tri jamstva
- Dosljednost
- Dostupnost
- Tolerancija particije
Dosljednost:
Podaci trebaju ostati dosljedni čak i nakon izvršenja operacije. To znači da kada se podaci zapišu, svaki budući zahtjev za čitanje treba sadržavati te podatke. Na primjer, nakon ažuriranja statusa naloga, svi bi klijenti trebali moći vidjeti iste podatke.
Dostupnost:
Baza podataka treba uvijek biti dostupna i responzivna. Ne bi trebalo imati zastoja.
Tolerancija particije:
Tolerancija particije znači da bi sustav trebao nastaviti funkcionirati čak i ako komunikacija između poslužitelja nije stabilna. Na primjer, poslužitelji se mogu podijeliti u više grupa koje možda neće međusobno komunicirati. Ovdje, ako je dio baze podataka nedostupan, drugi dijelovi su uvijek nepromijenjeni.
Eventualna dosljednost
Izraz "eventualna dosljednost" znači imati kopije podataka na više strojeva kako bi se postigla visoka dostupnost i skalabilnost. Stoga se promjene napravljene na bilo kojoj podatkovnoj stavci na jednom stroju moraju prenijeti na druge replike.
Replikacija podataka možda neće biti trenutna jer će se neke kopije ažurirati odmah, a druge u dogledno vrijeme. Ove kopije mogu biti uzajamne, ali s vremenom postaju dosljedne. Otuda i naziv eventualna dosljednost.
BAZA: Basically Adostupno, Sčesto stanje, Eventualna konzistencija
- U osnovi, dostupan znači da je DB dostupan cijelo vrijeme prema CAP teoremu
- Meko stanje znači čak i bez unosa; stanje sustava se može promijeniti
- Eventualna konzistentnost znači da će sustav s vremenom postati konzistentan
Prednosti NoSQL-a
- Može se koristiti kao primarni ili analitički izvor podataka
- Mogućnost velikih podataka
- Nema jedinstvene točke kvara
- Jednostavna replikacija
- Nema potrebe za zasebnim slojem predmemoriranja
- Omogućuje brze performanse i horizontalnu skalabilnost.
- Može rukovati strukturiranim, polustrukturiranim i nestrukturiranim podacima s jednakim učinkom
- Objektno orijentirano programiranje koje je jednostavno za korištenje i fleksibilno
- NoSQL baze podataka ne trebaju namjenski poslužitelj visokih performansi
- Podrška za ključne programerske jezike i platforme
- Jednostavan za implementaciju od korištenja RDBMS-a
- Može poslužiti kao primarni izvor podataka za online aplikacije.
- Rukuje velikim podacima koji upravljaju brzinom, raznolikošću, količinom i složenošću podataka
- Vrhunski u radu s distribuiranom bazom podataka i više podatkovnih centara
- Uklanja potrebu za posebnim slojem predmemoriranja za pohranu podataka
- Nudi fleksibilan dizajn sheme koji se lako može mijenjati bez zastoja ili prekida usluge
Nedostaci NoSQL-a
- Nema pravila standardizacije
- Ograničene mogućnosti upita
- RDBMS baze podataka i alati su relativno zreli
- Ne nudi nikakve tradicionalne mogućnosti baze podataka, poput dosljednosti kada se više transakcija izvodi istovremeno.
- Kada se količina podataka poveća, teško je održavati jedinstvene vrijednosti jer ključevi postaju teški
- Ne radi dobro s relacijskim podacima
- Krivulja učenja je teška za nove programere
- Opcije otvorenog koda nisu tako popularne za poduzeća.
Rezime
- NoSQL je nerelacijski DMS, koji ne zahtijeva fiksnu shemu, izbjegava spajanja i lako se skalira
- Koncept NoSQL baza podataka postao je popularan među internetskim divovima kao što su Google, Facebook, Amazon, itd. koji rade s velikim količinama podataka
- Godine 1998. Carlo Strozzi koristi izraz NoSQL za svoju laganu relacijsku bazu podataka otvorenog koda
- NoSQL baze podataka nikada ne slijede relacijski model ili su bez shema ili imaju opuštene sheme
- Četiri tipa NoSQL baze podataka su 1). Na temelju para ključ-vrijednost 2). Grafikon orijentiran na stupce 3). Grafikoni temeljeni na 4). Orijentiran na dokumente
- NOSQL može s jednakim učinkom obrađivati strukturirane, polustrukturirane i nestrukturirane podatke
- CAP teorem sastoji se od tri riječi Consistency, Availability i Partition Tolerance
- BASE je kratica za Basically Adostupno, Sčesto stanje, Eventualna konzistencija
- Izraz "eventualna dosljednost" znači imati kopije podataka na više strojeva kako bi se postigla visoka dostupnost i skalabilnost
- NoSQL nude ograničene mogućnosti upita






