SQL Vs NoSQL
SQL Vs NoSQL
date nerelaționale(NoSQL).
Avantajele utilizării unei baze de date sunt considerabile. Fără ele ar fi greu de găsit
un sistem decent de păstrare și gestionare a informațiilor. În ultima perioadă a crescut
flexibilitatea și ușurința de utilizare a bazelor de date.
Un avantaj al utilizării unei baze de date este economisirea timpului. În locul
căutarii informației de care avem nevoie prin mormane de hârtii, o bază de date ne poate
prezenta informația în mai puțin de o secundă printr-o simplă interogare.Un alt avantaj al
utilizării unei baze de date este faptul că aceasta este mai sigură.
Documentele tipărite pot fi compromise. Ele pot fi furate, distruse accidental, sau
pierdute. Baza de date adaugă un nivel de securitate informațiilor valoroase. Un server
poate fi plasat în afara pericolelor devastatoare cum ar fi un incendiu sau furt. De
asemenea o bază de date poate fi protejată prin parolă.
Deoarece bazele de date prezintă atâtea avantaje, cunoașterea diferitelor tipuri de
baze de date și a avantajelor si dezavantajelor pe care le oferă fiecare este extrem de
importantă.
După modelul de date folosit, există mai multe tipuri de baze de date NoSQL:
1.1.1. Bazate pe o familie de coloane
Acest tip de reprezentare a datelor folosește o structură de date cu o cheie care
pointează spre un grup de coloane. În cazul bazei de date Big Table, rândurile sunt
identificate printr-o cheie cu datele sortate si stocate în funcție de ordinea cheilor, iar
coloanele sunt grupate în familii. În timp ce bazele de date relaționale stochează datele ca
o mulțime de linii, în cazul bazelor de date NoSQL bazate pe o familie de coloane, datele
sunt reținute ca o mulțime de coloane.
1.1.2. Bazate pe documente
În cazul bazelor de date NoSQL care au la bază documentele, modelul de date este
reprezentat de o serie de documente. După denumirea acestui tip de bază de date,
conceptul de bază al acesteia este în acest caz documentul. Documentul încapsulează si
encodează un set de date, după un anumit standard. Datele pot fi codate prin mai multe
metode printre care: XML, YAML, JSON, BSON, dar și formatele binare.
Documentele sunt asemănătoare, în anumite privințe, cu înregistrările din bazele
de date relaționale, dar sunt mai flexibile pentru că nu trebuie sa aibă o anumită schemă
predefinită și nu trebuie să aibă aceleași secțiuni sau chei. Documentele sunt adresate în
baza de date după o cheie unică ce reprezintă documentul respectiv. Această cheie este
de multe ori un simplu șir de caractere.
1.1.3. Bazate pe structuri cheie-valoare
Ideea principală pentru acest tip de reprezentare a bazelor de date nerelaționale este
existența unei tabele de dispersie (hash) de chei unice care pointează spre un obiect
specific de date.
Această metodă este folosită împreună cu mecanisme de cache pentru asigurarea
performanțelor.
Acest tip de baze de date, care au datele stocate sub forma cheie-valoare, sunt unele
dintre cele mai triviale baze de date NoSQL. Valorile sunt date arbitrare neinterpretate,
pe care aplicațiile le pot interpreta în mai multe moduri. Această metodă de stocare a
datelor este una simplă si fără nicio schemă predefinită.
1.1.4. Bazate pe graf
Datele sunt reprezentate utilizând noduri, relațiile dintre acestea și proprietăți ale
nodurilor. Similar cu baza de date bazată pe familii de coloane, acest tip de reprezentare
este foarte flexibil în ceea ce privește abilitatea de a opera în sisteme distribuite pe mai
multe mașini de calcul. Modelul de baze de date bazat pe grafuri nu folosește indecși
pentru a găsi o anumită valoare în baza de date, ci se folosește de relațiile dintre noduri
(muchii) pentru a găsi elementele adiacente, astfel încat nu este nevoie de operatii de
căutare indexate.
Comparate cu bazele de date relaționale, bazele de date modelate pe grafuri sunt în
general mai rapide pentru seturi de date asociative și se pretează mai bine unui design
orientat pe obiecte. Acest tip de baze de date este mai ușor și mai natural scalat la cantități
mari de informații pentru că nu necesită operații de join, care prelungesc timpul de
execuție.
Versiunile Microsoft SQL Server care încă se mai găsesc in folosintă sunt: 2000,
2005, 2008,2012. Pentru administrarea variantei express, în general se foloseste
Microsoft SQL Server
Management Studio Express, disponibil pentru descărcare la adresa:
http://www.microsoft.com/download/en/details.aspx?id=7593
Pentru a accesa baza de date se lanseaza SQL Server Management Studio. Se pot
instala mai multe instanțe de SQL Server pe același computer, însa în general această
abilitate nu este folosită. Fiecare instantă are o denumire unică, proprie, în imaginea de
mai jos, denumirea fiind SQLEXPRESS (denumire implicită pentru varianta express).
Pentru a trece mai departe, se apasă pe butonul Connect.
Figura 2. Conectarea la Microsoft SQL Server
Pentru crearea unei baze de date noi se apasă click dreapta pe folderul Databases și
apoi New Database ca în imaginea de mai jos.
3.1.1. Documentele
Un document CouchDB este defapt un obiect JSON care este format din câmpuri
de date nominalizate. Valorile unui câmp pot fi șiruri de caractere, numere, date
calendaristice sau chiar liste ordonate. Un exemplu de document ar fi un post de blog:
{
"Subject": "Tenis",
"Author": "Dan",
"PostedDate": "6/13/2011",
"Tags": ["tenis", "fotbal", "decizii"],
"Body": "Am decis astazi ca nu imi place fotbalul. Imi place tenisul."
}
În documentul din exemplul anterior, subiectul este un câmp care conține o singură
valoare de tip șir de caractere „Tenis”. Tags este un câmp ce conține o listă de valori
„tenis”, „fotbal”, „decizii”.
O bază de date din CouchDB este o colecție unică formată din documente ca cel
dat drept exemplu. Fiecare document este identificat printr-un ID.
3.1.2. View-urile
Pentru a adăuga o structură la datele semi-structurate, CouchDB implementează
view-urile ce folosește JavaScript ca limbaj de programare. Un view este o metoda de
agregare și de raportare a documentelor din baza de date. View-urile sunt construite
dinamic și nu afectează documentele din baza de date.
Exportul datelor
În baza de date Mongo, datele sunt exportate într-un format care poate fi c
itit de om. Implicit, aceste date exportate sunt în format JSON, dar dezvoltatorii po
t exporta aceleași rezultate și în format CSV. Pentru a exporta baza de date, dezv
oltatorii ar trebui să folosească comanda mongoexport. Această comandă face un ins
tantaneu al întregii colecții și fie o afișează pe consola de administrare, fie o plaseaz
ă în directorul de stocare. Atunci când comanda mongoexport rulează fără argument
ul de intrare gazdă, se conectează pur și simplu la instanța Mongo locală din portul 2
7017 și exportează colecția. Iată ce va arăta sintaxa:
Unde:
-Host este un parametru opțional care specifică instanța bazei de date Mongo a s
erverului de la distanță;
-Numele de utilizator și - parola sunt parametrii opționali care specifică detaliile de
autentificare ale unui utilizator;
-Db specifică numele bazei de date;
-Collection specifică numele colecției;
-Out specifică calea fișierului de ieșire. Dacă acest lucru nu este specificat, r
ezultatul este afișat pe consolă.
Tastați comanda mongoexport pentru a activa exportul de date:
Implicit, comanda mongoexport scrie datele utilizând un document JSON p
entru fiecare document Mongo. Folosind parametrul opțional --jsonArray mo
difică ieșirea comenzii mongoexport ca un singur arbore JSON.
Importul datelor
În baza de date Mongo, utilitarul de import importa datele din extensia J
SON sau fișierul CSV creat de comanda mongoexport. Comanda mongoimport re
aduce documentele din fișierul JSON în colecția Mongo.
Iată sintaxa:
> mongoimport --host <host_name> --username <user_name> --password <pass
word> --db <database_name> --collection <collection_name> --file <input_file>
- File specifică calea fișierului de intrare. Dacă acest lucru nu este specificat, se u
tilizează intrarea standard.
4.Ce este Couchbase?
Platforma de date Couchbase include serverul Couchbase și Couchbase M
obile. Ambele sunt sisteme open source, NoSQL, multi-model, bazate pe documente
care stochează documente JSON. Couchbase se referă la platforma sa ca prima bază
de date a angajamentului din industrie - o nouă clasă de baze de date care poate
accesa date dinamice, la orice scară și pe orice canal sau dispozitiv.
Couchbase (compania) a început ca NorthScale în 2009 și ulterior a fost
redenumită la membrana Incorporated în 2010.
Couchbase, Inc. a fost creată ulterior prin fuziunea dintre Membase și CouchOne în
februarie 2011.Clienții Couchbase includ Amadeus, AT & T, BD (Becton, Dickinso
n și Compania), Carrefour, Cisco, Comcast, Disney, DreamWorks Animation, eBay,
Marriott, Neiman Marcus, Tesco, Tommy Hilfiger, Verizon, Wells Fargo și multe
altele.
Couchbase acceptă toate operațiunile JSON disponibile. Este folosit pentru
interogare și reprezintă formatul principal de stocare care ar trebui folosit.
Clasa JsonDocument are metode din fabrică numite create () pe care le
utilizați pentru a crea documente. Conținutul trebuie să fie de tipul JsonObject,
care este livrat împreună cu Java SDK.
Funcționează foarte mult ca un obiect Map, dar se asigură că sunt utilizate n
umai tipurile de date înțelese de JSON.
După ce este creat, puteți utiliza diferitele metode put () pentru a introduce date:
5. Exemplu bază de date NoSql în CouchBase
Mai jos este prezentată diagrama de clase a unui program ce calculează impozite:
Dupa cum se poate observa din diagrama claselor, avem un obiect Localitate.
Acest obiect are o listă de persoane. Persoanele la rândul lor pot să fie de două tipuri
: fizice sau juridice. Aceste persoane moștenesc obiectul DatePersoana care conține
tot ce au în comun cele doua tipuri de persoane.
Clasa DatePersoana conține o listă de terenuri, o listă de cladiri și o listă de
mijloace de transport. Terenurile sunt de doua tipuri: extravilan și intravilan. Clasele
TerenExtravilan și TerenIntravilan moștenesc obiectul DateTeren ce conține tot ce
au în comun cele doua tipuri de terenuri. De asemenea mijloacele de transport sunt
de doua tipuri: autovehicul și autovehicul de transport de marfă.
Mai există o clasă denumită CoeficientiDeImpozitare care are rolul de a stoca
toți coeficienții ce sunt folosiți pentru calculul impozitelor pentru toate obiectele
(terenuri, cladiri, masini).
6.Concluzii
1. Structura datelor:
Bazele de date relaționale (SQL), spre deosebire de bazele de date NoSQL, necesită
o structurare a datelor mult mai complexă și foarte bine pusă la punct. Deși această
structurare a datelor aduce anumite beneficii, ea impune o limitare in viteza de accesare
a datelor. De aceea bazele de date NoSQL sunt în general mai rapide decat cele relaționale
însă nu cu mult.
2. Interogarea:
Bazele de date relaționale implementează standardul SQL iar prin urmare ele pot fi
interogate folosind limbajul SQL (Structured Query Language). Bazele de date NoSQL
folosesc un limbaj unic de interogare a datelor care nu cuprinde interogări foarte
complexe ca în SQL.
3. Scalarea:
Ambele soluții sunt ușor de scalat pe verticală (adică prin creșterea resurselor de
sistem). Pe de altă parte, fiind mai moderne, bazele de date NoSQL oferă mijloace mult
mai ușoare de scalare pe orizontala.
4. Fiabilitate:
Când vine vorba de fiabilitatea datelor și garanția efectuării tranzacțiilor în condiții
de siguranță, bazele de date SQL sunt mai bune momentan.
5. Suportul tehnic:
Bazele de date relaționale au zeci de ani de vechime și sunt extrem de populare.
Datorită acestui lucru și spre deosebire de bazele de date NoSQL ce au apărut recent, este
mai ușor de găsit suport tehnic în cazul în care apare o problemă.
Baza de date relațională (SQL) oferă posibilitatea unei scalări decente, viteza de
acces a datelor este bună, structurarea datelor permite o oarecare flexibilitate. Printre
punctele forte ale bazei de date relaționale se enumeră: interogările foarte complexe și
garanția efectuării tranzacțiilor.
Pe de alta parte, bazele de date nerelaționale (NoSQL) oferă metode destul de bune
de interogare a datelor, tranzacții în condiții decente de sigurantă. Avantajele bazei de
date nerelaționale sunt: o viteză de acces a datelor foarte bună, o flexibilitate foarte mare
a structurării datelor și mijloace de scalare mai ieftine.
Ambele tipuri de baze de date ofera avantaje și dezavantaje. Dacă este nevoie de o
bază de date foarte rapidă, ce stochează o cantitate enormă de informație și dacă nu
contează foarte mult complexitatea interogărilor și fiabilitatea datelor, atunci se va folosi
o bază de date nerelațională. În cazul în care siguranța tranzacțiilor este foarte importantă,
sunt necesare interogări foarte complexe a datelor stocate, cantitatea stocată de informații
nu este enormă și nu contează foarte mult viteza de accesare a datelor, atunci se va folosi
o baza de date relațională. Mai există și posibilitatea folosirii celor două tipuri de baze de
date în cadrul aceleași aplicații pentru a beneficia de punctele forte ale ambelor tipuri.
În concluzie, ambele modele de baze de date sunt folosite în diferite cazuri. Nu
există un model mai bun ca altul deoarece fiecare oferă anumite beneficii.