Osnove NoSQL baza podataka - i zašto su nam potrebne

Vodič za početnike u svijetu NoSQL-a

Organiziranje podataka vrlo je težak zadatak. Kad kažemo organizirati, zapravo kategoriziramo stvari ovisno o njihovoj vrsti i funkciji.

Jedna od mogućnosti je da je RDBMS poput Excel tablice - podatke kategorizirate u obliku tablica. Možete stvoriti odnose između tablica.

A upita pitanja baza podataka koja vam daje relevantne odgovor u povratku. Ovaj jezik upita je SQL ili strukturirani jezik upita.

Na primjer,

select * from Employee_Data;

odabire sve podatke o zaposleniku iz tablice Employee_Data.

Relacijske baze podataka slijede shemu , detaljan nacrt rada vaših tablica.

Koristite Amazon, Facebook i toliko mrežnih aplikacija. Objavljuju ažuriranja, dodaju nove funkcionalnosti, pa čak i dodatne module. Pa kako se svaki put promijeni shema? Nije li potrebno tako velikim tvrtkama da svoje vrijeme i rad posvete promjeni sheme?

Ovdje SQL nije mogao raditi .

Protiv RDBMS-a

Relacijske baze podataka nisu toliko loše kao što ljudi danas prikazuju. I dalje ih koristi mnoštvo organizacija. Uvođenje NoSQL-a u sliku popunjava prostore u kojima RDBMS više ne može biti od koristi.

Pokazat ću vam primjere kako biste imali jasno razumijevanje.

1. RDBMS ne može obraditi 'Raznolikost podataka'.

Količina nestrukturiranih podataka nastavlja se povećavati iz godine u godinu i teško je upravljati njima. RDBMS ne može prisiliti sve vrste podataka u jedinstvenu shemu tablica.

Data Silos također su problem programerima.

Prema Tech Targetu, silos podataka je spremište podataka koje ostaje pod nadzorom jednog odjela. Izoliran je od ostatka organizacije.

To znači da će se, kad postoji više silosa za iste podatke, njihov sadržaj vjerojatno razlikovati. Stvara zbrku oko toga koje spremište predstavlja najnoviju verziju.

Povećanje podataka od 2013. do 2020. godine vidljivo je na donjoj slici.

Oko 2020. zetskih bajtova podataka generirat će se 2020. godine.

Rukovanje tako raznolikim podacima koji nisu međusobno povezani moglo bi biti mnogo teže u RDBMS-u.

Primjer: Teško je pohraniti podatke o pacijentu koji ima različita tjelesna stanja. Kategorizacija tako raznolikih podataka otežana je u RDBMS-u.

2. Teško mijenja tablice i odnose.

Promjena odnosa između tablica ili dodavanje nove tablice može utjecati na postojeće odnose. To znači promjenu sheme.

Promjena sheme bila bi poput uklanjanja postojeće i osmišljavanja nove sheme.

Za dodavanje nove funkcionalnosti potrebni su svi elementi koji podržavaju novu strukturu. Promjena je neizbježna.

Primjer: Svaki dodatni stupac treba sve prethodne retke kako bi imao vrijednosti za taj stupac. Dok u Cassandri (baza podataka NoSQL) možete dodati stupac određenim particijama redaka.

3. RDBMS slijede ACID svojstva baze podataka.

ACID svojstva baze podataka su atomskost, dosljednost, izoliranost i trajnost. ‌

Atomicnost - pristup "sve ili ništa". Ako bilo koja izjava u transakciji ne uspije, cijela transakcija se vraća.

Dosljednost - Transakcija mora zadovoljavati sve protokole definirane sustavom. Nema upola dovršenih transakcija.

Izolacija - Nijedna transakcija nema pristup niti jednoj drugoj transakciji koja je u srednjem ili nedovršenom stanju. Svaka transakcija je neovisna.

Trajnost - osigurava da se jednom transakcija obveže u bazu podataka, čuva se upotrebom sigurnosnih kopija i dnevnika transakcija.

Svojstva ACID nisu fleksibilna.

Na primjer, RDBMS slijedi Normalizaciju ili koncept jedne točke istine . Za svaku promjenu koju napravite trebali biste osigurati stroga svojstva KISELINE. Također se primjenjuju pravila o integritetu entiteta i referentnom integritetu.

Teorem CAP

Prema Wikipediji, CAP teorem (Brewerov teorem) kaže da je nemoguće da distribuirana pohrana podataka istodobno pruža više od dva od sljedeća tri jamstva:

Konzistentnost: Poput C u KISELINI.

Dostupnost : ‌ Resursi trebaju biti uvijek dostupni. Trebao bi postojati odgovor bez pogreške.

Tolerancija particije : Nema niti jedne točke (ili čvora) kvara.

Teško je postići sva tri uvjeta. Čovjek mora napraviti kompromis.

BAZA u pomoć!

‌NoSQL se oslanja na mekši model poznat kao BASE model. BASE ( B asically dostupno, S često stanje, E ventual konzistencija).

U osnovi dostupno: Jamči dostupnost podataka. Odgovorit će na bilo koji zahtjev (može biti i neuspjeh).

Meko stanje : Stanje sustava moglo bi se mijenjati s vremenom.

Eventualna dosljednost: Sustav će na kraju postati dosljedan kad prestane primati ulazne podatke.

NoSQL baze podataka odustaju od zahtjeva A, C i / ili D, a zauzvrat poboljšavaju skalabilnost.

NoSQL

Tada je NoSQL priskočio u pomoć. ‌ To su baze podataka „ Ne samo SQL“ ili „ Nerelacijske “.

Karakteristike NoSQL-a:

  • Shema besplatna
  • Na kraju dosljedan (kao u svojstvu BASE)
  • Replikacija spremišta podataka kako bi se izbjegla jedna točka neuspjeha.
  • Može se nositi s raznovrsnim podacima i ogromnim količinama podataka.

Vrste NoSQL baza podataka

NoSQL baze podataka spadaju u četiri glavne kategorije:

Trgovine s ključnim vrijednostima - Riak, Voldemort i Redis

Široke prodavaonice - Cassandra i HBase.

Baze podataka dokumenata - MongoDB

Grafičke baze podataka - Neo4J i HyperGraphDB.

Riječi s desne strane primjeri su vrsta NoSQL tipova baza podataka.

1. Trgovine ključnih vrijednosti

Pohrana vrijednosti ključa koristi hash tablicu u kojoj postoji jedinstveni ključ i pokazivač na određenu stavku podataka.

Zamislite da su pohrane ključnih vrijednosti poput telefonskog imenika u kojem su imena pojedinca i njihovi brojevi mapirani zajedno.

Trgovine vrijednosti ključeva nemaju zadani jezik upita. Podatke dohvaćate pomoću naredbi za dobivanje, stavljanje i brisanje . To je razlog što ima visoke performanse.

Aplikacije : Korisno za pohranu podataka o komentarima i sesijama. ‌Pinterest koristi Redis za spremanje popisa korisnika, sljedbenika, odjavnika i odbora.

2. Široke trgovine s stupcima

U bazi podataka pohrane stupaca stupci u svakom retku nalaze se unutar tog retka.

Svaka obitelj stupaca spremnik je redaka u RDBMS tablici. Ključ identificira red koji se sastoji od više stupaca.

Redci ne moraju imati jednak broj stupaca. Stupci se mogu dodati bilo kojem retku u bilo kojem trenutku, bez dodavanja u druge retke. To je pregrađeno skladište redova.

Kako stupčana baza podataka pohranjuje podatke?

Aplikacije : Spotify koristi Cassandru za pohranu atributa i metapodataka korisničkog profila.

3. Baze podataka dokumenata

StoresDokumenti za pohranu podataka koriste JSON, XML ili BSON (binarno kodiranje JSON) dokumenata.

To je poput baze podataka ključ / vrijednost, ali spremište dokumenata sastoji se od polustrukturiranih podataka .

Jedan dokument je pohranjivanje zapisa i podataka.

To ne podržava odnose ili se pridružuje.

Ako želimo pohraniti podatke o kupcu i njihove narudžbe, za to možemo koristiti spremišta dokumenata.

Prijave: SEGAkoristi MongoDB za rukovanje 11 milijuna računa u igri izgrađenih na MongoDB-u.

4. Grafikujte baze podataka

‌ Čvorovi i odnosi bitni su sastojci baza podataka grafova. Čvor predstavlja cjelinu. Odnos predstavlja kako dvije čvorovi su povezani.

‌U RDBMS-u dodavanje druge relacije rezultira mnogim promjenama sheme.

Baza podataka grafikona zahtijeva samo jedno pohranjivanje podataka (čvorovi). Različite vrste odnosa (rubovi) specificiraju se prema pohranjenim podacima.

Odnosi između čvorova su unaprijed određeni, odnosno nisu utvrđeni u vrijeme upita.

Prelazak trajnih veza brži je.

Teško je promijeniti odnos između dva čvora. To bi rezultiralo regresivnim promjenama u bazi podataka.

Primjer : Ova slika prikazuje kako MySQL radi tamo gdje mora izvesti mnoge operacije kako bi pronašao točan rezultat za Alice.

Graf podataka koji predodređuje odnose.

Ovo su neke od osnovnih informacija koje će vam trebati da biste započeli istraživanje NoSQL-a. Nove baze podataka izmišljaju se za određene svrhe.

Saznajte vrstu podataka koje vaša aplikacija generira, a zatim je lako odabrati pravu bazu podataka.

Pišem priče o životnim lekcijama, kodiranju i tehnologiji. Da biste pročitali više, slijedite me na Twitteru i Mediumu.