Pregled NoSQL baza podataka

Akronim NoSQL je napravljen 1998. godine. Mnogi ljudi misle da je NoSQL pogrdan izraz koji je stvoren da pokrene u SQL-u. U stvarnosti izraz podrazumeva ne samo SQL. Ideja je da obe tehnologije mogu koegzistirati i svako ima svoje mesto. NoSQL pokret je u vijestima u poslednjih nekoliko godina, pošto su mnogi lideri Web 2.0-a usvojili NoSQL tehnologiju. Kompanije kao što su Facebook, Twitter, Digg, Amazon, LinkedIn i Google sve koriste NoSQL na jedan ili drugi način.

Razbijamo NoSQL tako da možete to objasniti svom CIO-u ili čak vašim saradnicima.

NoSQL je izašao iz potrebe

Skladištenje podataka: Svjetski memorisani digitalni podaci se mjeri u eksabajtima. Exabyte je jednak milijardi gigabajta (GB) podataka. Prema Internet.com-u, količina uskladištenih podataka u 2006. bila je 161 eksabajta. Samo 4 godine kasnije u 2010. godini, količina podataka koja se čuva će biti skoro 1.000 ExaBytes-a što predstavlja povećanje od preko 500%. Drugim riječima, na svijetu se dosta podataka čuvaju i samo će se nastaviti rastući.

Međusobno povezani podaci: podaci i dalje postaju više povezani. Kreiranje web-a posvećeno hipervezama, blogovi imaju pingbacks i svaki veliki društveni mrežni sistem ima oznake koji zajedno vezuju stvari. Glavni sistemi su izgrađeni da budu međusobno povezani.

Složena struktura podataka: NoSQL može jednostavno upravljati hijerarhijskim ugrađenim strukturama podataka. Da biste postigli istu stvar u SQL-u, trebali bi vam više relacionih tablica sa svim vrstama ključeva.

Pored toga, postoji veza između performansi i složenosti podataka. Performanse se mogu degradirati u tradicionalnom RDBMS-u pošto čuvamo ogromne količine podataka koji su potrebni u aplikacijama za društvene mreže i semantičkim mrežama.

Šta je NoSQL?

Pretpostavljam da jedan način da definišete NoSQL je da razmotri šta nije.

To nije SQL i nije relaciono. Kao što sugeriše na ime, to nije zamena za RDBMS, ali je kompliment. NoSQL je dizajniran za distribuirane skladišta podataka za potrebe velikog obima podataka. Razmislite o Facebook-u sa svojim 500.000.000 korisnicima ili Twitter-om koji akumulira Terabite podataka svakog dana.

U NoSQL bazi podataka, nema fiksne sheme i nema pridruživanja. RDBMS "skalira" brže i brže hardver i dodavanje memorije. NoSQL, s druge strane, može iskoristiti "skaliranje". Skaliranje se odnosi na širenje opterećenja preko mnogih robnih sistema. Ovo je komponenta NoSQL-a što ga čini jeftinim rješenjem za velike skupove podataka.

NoSQL Kategorije

Trenutni NoSQL svet se uklapa u 4 osnovne kategorije.

  1. Ključne vrednosti Prodavnice se zasnivaju pretežno na Amazonovom Dynamo papiru koji je napisan 2007. godine. Glavna ideja je postojanje tabele hašiša u kojoj postoji jedinstveni ključ i pokazivač za određenu stavku podataka. Ove mape obično su praćene mehanizmima keša da bi se maksimizirale performanse.
    Porodične prodavnice kolone su stvorene za čuvanje i obradu veoma velikih količina podataka distribuiranih na mnogim mašinama. Još uvek postoje ključevi, ali ukazuju na više kolona. U slučaju BigTable (Googleov model NoSQL familije kolone), redovi se identifikuju pomoću ključa s redom s podacima sortiranim i pohranjenim ovim ključem. Kolone su uređene po porodici kolona.
  1. Baza podataka dokumenata inspirisana je Lotus Notes i slična su prodavnicama ključne vrednosti. Model je u osnovi verzija dokumenta koji su zbirke drugih kolekcija ključnih vrednosti. Pol-strukturirani dokumenti se čuvaju u formama kao što je JSON.
  2. Grafičke baze podataka su izgrađene sa čvorovima, odnosima između beleški i osobina čvorova. Umjesto tablica redova i stupaca i kruta struktura SQL-a, koristi se fleksibilni grafički model koji može da skali na mnoge mašine.

Glavni NoSQL igrači

Najveći igrači u NoSQL-u su se pojavili pre svega zbog organizacija koje su ih usvojile. Neke od najvećih NoSQL tehnologija uključuju:

Upitnik NoSQL-a

Pitanje kako se upitati za NoSQL bazu podataka je ono što većina programera interesuje. Na kraju, podaci koji se čuvaju u ogromnoj bazi podataka ne čine bilo koga dobro ako ne možete da ih preuzmete i pokažete krajnjim korisnicima ili veb uslugama. NoSQL baze podataka ne sadrže deklarativni jezik upita na visokom nivou kao što je SQL. Umjesto toga, upiti na ove baze podataka je specifičan za model podataka.

Mnoge NoSQL platforme omogućavaju RESTful interfejs na podatke. Ostali API-ovi za upite za upit. Postoje nekoliko alata za upite koji su razvijeni koji pokušavaju da upitaju višestruke NoSQL baze podataka. Ovi alati obično rade preko jedne kategorije NoSQL. Jedan primjer je SPARQL. SPARQL je deklarativna specifikacija upita dizajnirana za grafičke baze podataka. Evo primera upita SPARQL-a koji preuzima URL određenog blogera (zahvaljujući IBM-u):

PREFIX folija:
SELECT? Url
FROM
WHERE {
? contributor foaf: ime "Jon Foobar".
? contributor foaf: weblog? url.
}

Budućnost NoSQL-a

Organizacije koje imaju velike potrebe za skladištenjem podataka ozbiljno gledaju na NoSQL-u. Očigledno, koncept ne dobija toliko vuču u manjim organizacijama. U anketi koju je obavila informativna nedelja, 44% poslovnih IT profesionalaca nije čulo za NoSQL. Dalje, samo 1% ispitanika je izjavilo da je NoSQL dio njihovog strateškog pravca. Jasno je da NoSQL ima svoje mesto u našem povezanom svetu, ali će morati nastaviti da se razvija kako bi dobili masovnu žalbu koju mnogi misle da bi mogla imati.