NoSQL Tutorial: Vrste NoSQL baza podataka, što je i primjer

Što je NoSQL?

NoSQL Baza podataka je nerelacijski sustav upravljanja podacima koji ne zahtijeva fiksnu shemu. Izbjegava spajanje i lako se skalira. Glavna svrha korištenja NoSQL baze podataka je za distribuirane pohrane podataka s ogromnim potrebama za skladištenjem 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 'Nije SQL'. Iako bi bolji izraz bio 'NoREL', NoSQL se uhvatio. Carl Strozz predstavio je koncept NoSQL 1998. godine.

Tradicionalni RDBMS koristi SQL sintaksu za spremanje i dohvaćanje podataka radi daljnjih uvida. Umjesto toga, sustav baze podataka NoSQL obuhvaća širok raspon tehnologija baza podataka koje mogu pohraniti strukturirane, polustrukturirane, nestrukturirane i polimorfne podatke. Shvatimo NoSQL sa dijagramom u ovom vodiču za NoSQL bazu podataka:

U ovom vodiču NoSQL za početnike naučit ćete osnove NoSQL -a poput:

Zašto NoSQL?

Koncept NoSQL baza podataka postao je popularan kod internetskih divova poput Googlea, Facebooka, Amazona itd. Koji se bave ogromnom količinom podataka. Vrijeme odziva sustava postaje sporo kada koristite RDBMS za velike količine podataka.

Kako bismo riješili ovaj problem, mogli bismo 'povećati' svoje sustave nadogradnjom postojećeg hardvera. Ovaj proces je skup.

Alternativa za ovaj problem je raspodjela opterećenja baze podataka na više hostova kad god se opterećenje poveća. Ova je metoda poznata kao 'smanjivanje'.

NoSQL baza podataka nije relacijska, pa se širi bolje od relacijskih baza podataka jer su dizajnirane s web aplikacijama na umu.

Kratka povijest NoSQL baza podataka

  • 1998- Carlo Strozzi koristi izraz NoSQL za svoju laganu, relacijsku bazu podataka otvorenog koda
  • 2000- Pokrenuta je baza podataka Neo4j Graph
  • 2004- Pokrenuta je Google BigTable
  • 2005- lansiran je CouchDB
  • 2007- Objavljen je istraživački rad o Amazon Dynamu
  • 2008- Facebookovi otvoreni izvori projekt Cassandra
  • 2009- Ponovno je uveden izraz NoSQL

Značajke NoSQL -a

Nerelacijski

  • NoSQL baze podataka nikada ne slijede relacijski model
  • Nikada nemojte davati tablice s plosnatim zapisima s fiksnim stupcem
  • Radite s samostalnim agregatima ili BLOB-ovima
  • Ne zahtijeva objektno-relacijsko mapiranje i normalizaciju podataka
  • Nema složenih značajki poput jezika upita, planera upita,

    pridružuje se referentni integritet, ACID

Bez shema

  • NoSQL baze podataka nemaju sheme ili imaju opuštene sheme
  • Ne zahtijevaju nikakvu definiciju sheme podataka
  • Nudi heterogene strukture podataka u istoj domeni

NoSQL ne sadrži sheme

Jednostavan API

  • Nudi sučelja jednostavna za korištenje za pohranu i dobivanje podataka
  • API-ji dopuštaju metode manipulacije i odabira podataka na niskoj razini
  • Tekstualni protokoli koji se uglavnom koriste s HTTP REST s JSON-om
  • Uglavnom se ne koristi standardni jezik NoSQL upita
  • Web-baze podataka koje rade kao usluge okrenute internetu

Distribuirano

  • Više NoSQL baza podataka može se izvesti distribuirano
  • Nudi mogućnosti automatskog skaliranja i prebacivanja preko greške
  • Često se koncept ACID -a može žrtvovati radi skalabilnosti i propusnosti
  • Uglavnom nema sinkrone sinkronizacije između distribuiranih čvorova Asinkrona višestruka replikacija, peer-to-peer, HDFS replikacija
  • Samo pruža moguću dosljednost
  • Shared Nothing Architecture. To omogućuje manju koordinaciju i veću distribuciju.

NoSQL se ne dijeli ništa.

Vrste NoSQL baza podataka

NoSQL baze podataka uglavnom su kategorizirane u četiri vrste: par ključ-vrijednost, orijentiran na stupac, na grafikonu i 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 ovisno o potrebama proizvoda.

Vrste NoSQL baza podataka:

  • Ključ-vrijednost Na temelju para
  • Graf orijentiran na stupac
  • Na temelju grafikona
  • Orijentirano na dokumente

Ključna vrijednost Na temelju para

Podaci se pohranjuju u parovima ključ/vrijednost. Dizajniran je na takav način da obrađuje mnogo podataka i veliko opterećenje.

Baze podataka za pohranu parova ključ-vrijednost pohranjuju podatke kao raspršenu tablicu u kojoj je svaki ključ jedinstven, a vrijednost može biti JSON, BLOB (binarni veliki objekti), niz itd.

Na primjer, par ključ-vrijednost može sadržavati ključ poput 'Web stranice' povezan s vrijednošću poput 'Guru99'.

To je jedan od najosnovnijih primjera NoSQL baze podataka. Ova vrsta NoSQL baze podataka koristi se kao zbirka, rječnici, asocijativni nizovi itd. Spremnici ključnih vrijednosti pomažu razvojnom programeru u pohranjivanju podataka bez sheme. Oni najbolje funkcioniraju za sadržaj košarice.

Redis, Dynamo, Riak neki su od NoSQL primjera baza podataka ključ-vrijednost za pohranu podataka. Svi se temelje na Amazonovom papiru Dynamo.

Na temelju kolone

Baze podataka usmjerene na stupce rade na stupcima i temelje se na papiru BigTable Googlea. Svaki stupac obrađuje se zasebno. Vrijednosti baza podataka s jednim stupcem pohranjuju se kontinuirano.

NoSQL baza podataka zasnovana na stupcu

Pružaju visoke performanse pri združivanju upita poput SUM, COUNT, AVG, MIN itd. Jer su podaci lako dostupni u stupcu.

NoSQL baze podataka temeljene na stupcima široko se koriste za upravljanje skladištima podataka, Poslovna inteligencija , CRM, Katalozi knjižničnih kartica,

HBase, Cassandra, HBase, Hypertable primjeri su upita NoSQL baze podataka temeljene na stupcima.

Orijentirano na dokumente:

NoSQL DB orijentirana na dokumente pohranjuje i dohvaća podatke kao par vrijednosti ključ, ali se dio vrijednosti pohranjuje kao dokument. Dokument je pohranjen u JSON ili XML formatima. DB razumije vrijednost i može se postaviti upit.

Relacijski vs. Dokument

Na ovom dijagramu s lijeve strane možete vidjeti da imamo redove i stupce, a s desne strane imamo bazu 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 dokumenata imate spremište podataka poput JSON objekta. Ne morate definirati što ga čini fleksibilnim.

Vrsta dokumenta uglavnom se koristi za CMS sustave, platforme za bloganje, analitiku u stvarnom vremenu i aplikacije za e-trgovinu. Ne smije se koristiti za složene transakcije koje zahtijevaju više operacija ili upita u odnosu na različite agregatne strukture.

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, popularni su DBMS sustavi koji potječu iz dokumenata.

Na temelju grafikona

Baza podataka tipa grafikona pohranjuje entitete, kao i odnose među tim entitetima. Entitet je pohranjen kao čvor s odnosom kao rubovi. Rub daje odnos između čvorova. Svaki čvor i rub imaju jedinstveni identifikator.

U usporedbi s relacijskom bazom podataka u kojoj su tablice slabo povezane, Baza podataka Graph je višerelacijske prirode. Odnos prelaska je brz jer su već uneseni u bazu podataka i nema ih potrebe izračunavati.

Baza podataka grafikona uglavnom se koristi za društvene mreže, logistiku, prostorne podatke.

Neo4J, Infinite Graph, OrientDB, FlockDB neke su od popularnih baza podataka zasnovanih na grafovima.

Alati mehanizama upita za NoSQL

Najčešći mehanizam za dohvaćanje podataka je REST-bazirano dohvaćanje vrijednosti na temelju njezina ključa/ID-a s GET resursom

Baza podataka spremišta dokumenata nudi teže zahtjeve jer shvaćaju vrijednost u paru ključ-vrijednost. Na primjer, CouchDB dopušta definiranje pogleda pomoću MapReduce

Što je CAP teorema?

CAP teorem naziva se i Brewerov teorem. Navodi se da distribuirano skladište podataka ne može ponuditi više od dva od tri jamstva

  1. Dosljednost
  2. Dostupnost
  3. Tolerancija pregrade

Dosljednost:

Podaci bi trebali ostati dosljedni čak i nakon izvođenja operacije. To znači da nakon što se podaci upišu, svaki budući zahtjev za čitanje trebao bi sadržavati te podatke. Na primjer, nakon ažuriranja statusa narudžbe svi klijenti trebali bi vidjeti iste podatke.

Dostupnost:

Baza podataka uvijek treba biti dostupna i osjetljiva. Ne bi trebao imati zastoja.

Tolerancija pregrade:

Tolerancija particije znači da bi sustav trebao nastaviti funkcionirati čak i ako komunikacija među poslužiteljima nije stabilna. Na primjer, poslužitelji se mogu podijeliti u više grupa koje možda međusobno ne komuniciraju. Ovdje, ako dio baze podataka nije dostupan, na ostale dijelove uvijek nema utjecaja.

Eventualna dosljednost

Izraz 'konačna dosljednost' znači imati kopije podataka na više strojeva radi postizanja visoke dostupnosti i skalabilnosti. Stoga se promjene u bilo kojoj stavci podataka na jednom stroju moraju proširiti na druge replike.

Replikacija podataka ne mora biti trenutačna jer će se neke kopije ažurirati odmah, dok će se druge s vremenom. Te kopije mogu biti međusobne, ali s vremenom postaju dosljedne. Dakle, naziv konačna dosljednost.

BAZA: B asički DO dostupno, S često stanje, I ventual dosljednost

  • U osnovi, dostupno znači da je DB dostupan cijelo vrijeme prema teoremu CAP -a
  • Meko stanje znači čak i bez unosa; stanje sustava se može promijeniti
  • Eventualna dosljednost znači da će sustav s vremenom postati dosljedan

Prednosti NoSQL -a

  • Može se koristiti kao primarni ili analitički izvor podataka
  • Mogućnost velikih podataka
  • Nema jedinstvene točke greške
  • Jednostavna replikacija
  • Nema potrebe za zasebnim slojem keširanja
  • 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 bazama podataka nije potreban namjenski poslužitelj visokih performansi
  • Podrška ključnim jezicima i platformama za razvojne programere
  • Jednostavno za implementaciju nego korištenje RDBMS -a
  • Može poslužiti kao primarni izvor podataka za mrežne aplikacije.
  • Rukuje velikim podacima koji upravljaju brzinom, raznolikošću, volumenom i složenošću podataka
  • Odličan u radu s distribuiranom bazom podataka i više podatkovnih centara
  • Uklanja potrebu za posebnim slojem predmemorije za spremanje podataka
  • Nudi fleksibilan dizajn sheme koji se lako može promijeniti bez zastoja ili prekida usluga

Nedostaci NoSQL -a

  • Nema pravila standardizacije
  • Ograničene mogućnosti upita
  • RDBMS baze podataka i alati relativno su zreli
  • Ne nudi tradicionalne mogućnosti baze podataka, poput dosljednosti kada se više transakcija izvodi istovremeno.
  • Kad se poveća količina podataka, teško je održavati jedinstvene vrijednosti jer ključevi postaju teški
  • Ne radi dobro s relacijskim podacima
  • Krivulja učenja je kruta za nove programere
  • Opcije otvorenog koda nisu toliko popularne za poduzeća.

Sažetak

  • NoSQL je nerelacijski DMS, koji ne zahtijeva fiksnu shemu, izbjegava pridruživanja i jednostavan je za skaliranje
  • Koncept NoSQL baza podataka postao je popularan kod internetskih divova poput Googlea, Facebooka, Amazona itd. Koji se bave ogromnom količinom podataka
  • Godine 1998. Carlo Strozzi koristi izraz NoSQL za svoju laganu, relacijsku bazu podataka otvorenog koda
  • NoSQL baze podataka nikada ne slijede relacijski model, one su bez shema ili imaju opuštene sheme
  • Četiri vrste NoSQL baze podataka su 1). Ključna vrijednost zasnovana na paru 2). Grafikon orijentiran na stupac 3). Grafikoni temeljeni 4). Orijentirano na dokumente
  • NOSQL može s jednakim učinkom rukovati strukturiranim, polustrukturiranim i nestrukturiranim podacima
  • CAP teorem sastoji se od tri riječi Dosljednost, Dostupnost i Tolerancija particije
  • BASE znači B asički DO dostupno, S često stanje, I ventual dosljednost
  • Izraz 'konačna dosljednost' znači imati kopije podataka na više strojeva radi postizanja visoke dostupnosti i skalabilnosti
  • NOSQL nudi ograničene mogućnosti upita