+ All Categories
Home > Documents > Comparație între bazele de date relaționale(SQL) și bazele...

Comparație între bazele de date relaționale(SQL) și bazele...

Date post: 06-Sep-2019
Category:
Upload: others
View: 16 times
Download: 0 times
Share this document with a friend
20
Comparație între bazele de date relaționale(SQL) și bazele de date nerelaționale(NoSQL). 1. Avantaje ale utilizării bazelor de date... 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, distrus e 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ă. 1.1 Generalități SQL și NoSQL. Pentru o perioadă vastă, profesioniștii din domeniul IT s-au bazat în întregime pe bazele de date ce acceptau un singur standard: Structured Query Language(SQL). Structure Query Language este un limbaj de programare conceput special pentru gestionarea datelor din cadrul unei baze de date relaționale . SQL a fost dezvoltat la IBM în anul 1974. La început se numea SEQUEL și avea ca scop manipularea si regăsirea datelor din bazele de date relaționale de la IBM. La sfârșitul anilor '70, Relational Software, Inc. (care în prezent se numeste Oracle Corporation) a văzut potențialul acestui limbaj și a dezvoltat propriul SQL. Relational Software, Inc. a lansat pe piață prima versiune de SQL în iunie 1979. Ulterior, cei de la IBM au lansat si ei niște versiuni proprii de SQL pe piața comercială.
Transcript
Page 1: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Comparație între bazele de date relaționale(SQL) și bazele de

date nerelaționale(NoSQL).

1. Avantaje ale utilizării bazelor de date...

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ă.

1.1 Generalități SQL și NoSQL.

Pentru o perioadă vastă, profesioniștii din domeniul IT s-au bazat în întregime pe

bazele de date ce acceptau un singur standard: Structured Query Language(SQL).

Structure Query Language este un limbaj de programare conceput special pentru

gestionarea datelor din cadrul unei baze de date relaționale.

SQL a fost dezvoltat la IBM în anul 1974. La început se numea SEQUEL și avea

ca scop manipularea si regăsirea datelor din bazele de date relaționale de la IBM. La

sfârșitul anilor '70, Relational Software, Inc. (care în prezent se numeste Oracle

Corporation) a văzut potențialul acestui limbaj și a dezvoltat propriul SQL. Relational

Software, Inc. a lansat pe piață prima versiune de SQL în iunie 1979. Ulterior, cei de la

IBM au lansat si ei niște versiuni proprii de SQL pe piața comercială.

Page 2: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Elementele de limbaj SQL sunt urmatoarele:

Clauze, care sunt componente ale instruțiunilor si interogarilor (ex: Update,

Set, Select, etc);

Expresii, al caror rezultat este producerea de valori (ex: varsta + 1);

Predicate (ex: nume = 'Dan');

Interogările, ce au ca scop regasirea datelor;

Instrucțiunile.

SQL a devenit un standard ANSI (American National Standards Institute) în 1986

și un standard ISO (International Organization for Standardization) în 1987. De atunci,

standardul a fost îmbunătățit de mai multe ori. În ciuda faptului ca SQL este un standard,

codul nu este complet portabil între diferite sisteme de baze de date.

Datorită apariției si extinderii internetului, cerințele pentru stocarea si prelucrarea

rapidă a datelor au crescut drastic. În faza de început al internetului, când conținutul

siteurilor nu era foarte vast, informațiile erau stocate în baze de date relaționale. Pe

măsura ce siteurile au început să conțină o cantitate foarte mare de date, ele nu mai puteau

fi stocate și prelucrate într-un mod eficient de către modelul relațional.

Din necesitatea de a avea o performanță ridicată, a apărut un nou tip de baze de

date: NoSQL. Modelul NoSQL renunță la o parte din constrângerile impuse de modelul

relațional pentru a se putea realiza performanțe îmbunătățite. Interesul pentru acest model

este în crestere, si nu în mod surprinzător, deoarece multe dintre companiile mari, cum ar

fi Google, Amazon, Facebook și Twitter folosesc modelul NoSQL.

Modelul NoSQL este un model de baze de date foarte diferit deoarece acesta nu

este un model relațional. NoSQL (denumit și ”Not Only SQL”) nu este construit pe bază

de tabele și nu satisface în întregime proprietățile de atomicitate, consistență, izolare și

durabilitate (ACID).

Printre diferitele modele de date folosite de către sistemele NoSQL se regăsesc:

Familia de coloane

Documentul

Cheie-valoare

Graful

După modelul de date folosit, există mai multe tipuri de baze de date NoSQL:

Page 3: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

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

Page 4: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

(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.

2. Microsoft SQL Server

2.1 Despre Microsoft SQL

Microsoft SQL Server este o bază de date relațională dezvoltată de Microsoft. Ca

orice bază de date, acesta este un produs software al cărei funcție principală este de a

stoca și de a prelua datele la cererea altor softuri, indiferent dacă acestea rulează pe același

computer sau daca acestea rulează de pe un alt calculator din aceeași rețea sau conectat

la internet. Microsoft SQL Server are o gramadă de diferite ediții care vizează o gamă

largă de tipuri de clienți și rețele de diferite marimi. Limbajele primare de interogare

folosite sunt T-SQL și ANSI SQL.

Microsoft SQL Server Express Edition este o ediție gratuită, cu un număr redus de

facilități care include motorul de bază a bazei de date SQL Server. Deși nu există limitări

privind numărul acceptat de baze de date sau de utilizatori, această ediție se limitează la

utilizarea unui singur procesor, 1 GB de memorie si o capacitate de stocare a informației

de maxim 10 GB.

2.2 Aplicație practică

Pe parcursul ultimilor ani, se poate observa o cuplare între limbajele de programare

majore și anumite baze de date:

Microsoft .Net (C# & VB) + Microsoft C++ Microsoft SQL Server

PHP MySQL & PostgreSQL

Java Oracle

Embedded C++ SQLite

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

Page 5: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Management Studio Express, disponibil pentru descărcare la adresa:

http://www.microsoft.com/download/en/details.aspx?id=7593

Pentru a instala programul se lansează fișierul descărcat de la adresa de mai sus, se

selectează categoria „Installation” din partea stângă a ferestrei și se alege opțiunea „New

SQL Server stand-lone installation or add features to an existing installation”.

Figura 1. Instalare Microsoft SQL Server

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.

Page 6: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

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.

Figura 3. Crearea unei baze de date

Urmează stabilirea denumirii bazei de date, în cazul nostru online_tv.

Page 7: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Figura 4. Stabilirea denumirii bazei de date

Pentru crearea unui tabel în noua bază de date se apasă click dreapta pe folderul

Tables și apoi pe New Table.

Figura 5. Crearea unui tabel

Page 8: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Se crează coloanele ca în imaginea de mai jos, atribuindu-le un nume si un tip de dată.

Figura 6. Stabilirea numelui și a tipului coloanelor

Se setează user_id ca cheie primară, cu auto-increment ca în figurile de mai jos.

Figura 7. Cheie primară Figura 8. Auto-increment

Se salvează tabelul cu denumirea users.

Page 9: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Figura 9. Salvarea tabelului

Rezultatul de până acum:

Figura 10. Rezultatul finalizării tabelului.

Page 10: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Sistemele de gestionare a bazelor de date NoSQL.

3.1 APACHE COUCHDB

3.2 Despre CouchDB

CouchDB este o bază de date care îmbrățisează complet web-ul. Aceasta stochează

datele sub formă de documente în format JSON. Accesarea documentelor se realizează

cu ajutorul unui browser web. CouchDB funcționează bine cu aplicațiile web moderne și

cu aplicațiile pentru dispozitivele mobile.

CouchDB este clasificată ca o bază de date „NoSQL”, un termen ce a devenit din

ce în ce mai popular la sfârșitul anului 2009 și la începutul anului 2010. În timp ce acest

termen este o caracterizare mai degrabă generică a unei baze de date, acesta impune o

schimbare binevenită de la modelele SQL tradiționale. CouchDB nu dispune de o schemă,

sau de structuri rigide de date cum ar fi tabelele. Datele stocate în CouchDB sunt sub

formă de documente JSON care se pot modifica dinamic pentru a se potrivi nevoilor ce

se află într-o continuă schimbare.

Pentru a înțelege mai bine ce este CouchDB, ar putea fi util de înteles ce nu este:

bază de date relatională

un înlocuitor pentru toate bazele de date

bază de date orientată pe obiect

Să trecem în revistă unele dintre caracteristicile de bază ale acestei baze de date:

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."

}

Page 11: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Î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.

View-urile sunt utilizate pentru:

Filtrarea documentele din baza de date pentru a le găsi doar pe cele relevante

pentru un anumit proces.

Extragerea datelor din documente prezentându-le într-o anumită ordine.

Cu view-uri se pot face tot feluri de calcule pe baza datelor din documentele

existente din baza de date. De exemplu, în cazul în care documentele

reprezintă tranzacții financiare, un view poate returna totalul cheltuielilor

din ultima săptămână, lună sau an.

3.1.3. Nu dispune de o schemă

Spre deosebire de bazele de date SQL care sunt concepute pentru a stoca date foarte

structurate, CouchDB este proiectat pentru a stoca cantități mari de date semi-structurate,

orientate pe documente. Într-o bază de date SQL, schema și structura datelor existente

trebuie actualizate pe măsură ce nevoile evoluează. CouchDB nu are nevoie de o schemă,

astfel noi tipuri de documente cu un nou sens pot fi adăugate în siguranță alături de cele

vechi.

Capacitățile de replicare si sincronizare ale acestei baze de date o fac ideală pentru

utilizarea în cadrul aplicațiilor pentru dizpozitivele mobile, în cazul în care conexiunea la

rețea nu este garantată, dar aplicația trebuie sa poată lucra offline.

În continuare urmează câteva exemple de companii care au utilizat sau utilizează

CouchDB:

Ubuntu a început să o folosească în 2009 pentru serviciul său de sincronizare, dar

s-a oprit din folosire în noiembrie 2011.

Page 12: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

BBC, pentru platformele sale de conținut dinamic.

Credit Suisse, pentru uz intern în cadrul departamentului de produse.

Meebo, pentru platforma lor socială. Meebo a fost achiziționată de Google și

închisă la data de 12 iulie 2012.

3.2 Ce este MongoDB?

MongoDB este o bază de date NoSQL de înaltă performanță, în care fiecare bază de date

are colecții care la rândul ei au documente. Fiecare document are un număr diferit de

câmpuri, mărime, conținut și este stocat într-un format asemănător JSON (adică Binary

JSON). Documentele din MongoDB nu trebuie să aibă o schemă definită în prealabil. În

schimb, câmpurile (adică înregistrările) pot fi create în timpul deplasării.

Modelul de date disponibil în cadrul programului MongoDB permite dezvoltatorilor

să reprezinte cu ușurință relațiile ierarhice, să stocheze matrice și alte structuri mai

complexe.Această soluție NoSQL vine adesea cu încorporare, auto-ștergere și replicare la

bord pentru o mai bună scalabilitate și disponibilitate ridicată.

Este, de asemenea, o schemă NoSQL DBMS încrucișată, care în prezent suportă Windows,

Mac, Solaris și diverse distribuții Linux în momentul redactării.MongoDB este utilizat de

unele dintre cele mai mari companii din lume, inclusiv Facebook, Google, Nokia, MTV

Networks, Cisco, Forbes și multe altele.

În spatele scenei, MongoDB stochează documentele JSON într format bin

ar codat numit BSON. BSON extinde JSON prin sprijinirea tipurilor de date suplime

ntare și eficientizarea codării și decodificării în limbi diferite.

Page 13: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

3.3. De ce să alegem MongoDB?

Ca o bază de date de tip NoSQL, MongoDB stochează datele sub forma u

nui document. Astfel, MongoDB oferă mai multă flexibilitate.Această bază de dat

e acceptă căutarea după nume-domeniu, interogări de interval și expresii regu

late. De multe ori oferă interogări pentru a returna câmpurile particulare din inter

iorul documentelor.MongoDB oferă indexuri pentru a îmbunătăți performanța căutăr

ii în baza de date NoSQL.

Pentru a oferi o scalabilitate orizontală, MongoDB folosește un sharpening

prin împărțirea datelor în multe dintre aparițiile MongoDB.

MongoDB Import și export JSON. Exemplu 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:

Page 14: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

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.

Page 15: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

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.

Un document JSON gol poate fi creat astfel:

După ce este creat, puteți utiliza diferitele metode put () pentru a introduce date:

Page 16: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

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).

Page 17: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele
Page 18: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

6.Concluzii

Fiecare sistem de bază de date implementează un model diferit de a structura logic

datele pe care le gestionează. În funcție de modelul pe care îl implementează, este

determinat modul în care o aplicație ce folosește o bază de date va funcționa și modul în

care tratează informațiile cu care lucrează.

Există câteva modele de baze de date care ne furnizează într-un mod clar și strict

metode diferite de structurare a datelor. Cel mai popular dintre aceste modele este

modelul relațional. Deși modelul relațional este extrem de puternic si de flexibil (în cazul

în care programatorul știe cum să îl folosească) există multe probleme la care acesta nu

poate oferi soluții.

În ultima perioadă, datorită promisiunilor de a oferi soluții la aceste probleme, o

serie de baze de date denumite NoSQL au început să devină populare. Prin eliminarea

stilului foarte strict de structurare a datelor din modelul relațional, aceste baze de date

permit o metodă mai usoară și mai flexibilă de manipulare a informațiilor.

Modelul relațional oferă un mod matematic de structurare, păstrare și utilizare a

datelor. Mulțumită zecilor de ani de cercetare și dezvoltare, bazele de date ce

implementează modelul relațional sunt extrem de eficiente și sigure. În ciuda caracterului

lor strict de structurare a datelor, bazele de date relaționale pot fi destul de flexibile cu

puțin efort.

Modelul NoSQL de structurare a datelor ne scapă de aceste constrângeri, astfel

simplificând mijloacele de păstrare, interogare și utilizare a informațiilor. Folosind o

metodă mai nestructurată de stocare a datelor, bazele de date NoSQL au ca scop

eliminarea relațiilor stricte și oferă mai multe moduri de stocare eficientă a datelor.

Cu scopul de a ajunge la o concluzie, să analizăm diferențele dintre sistemele de

baze de date SQL și NoSQL.

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.

Page 19: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

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.

Page 20: Comparație între bazele de date relaționale(SQL) și bazele ...robotics.ucv.ro/carti/mtsa/current/SQL vs NoSQL.pdf · Comparație între bazele de date relaționale(SQL) și bazele

Î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.


Recommended