Baze de date non -SQL [619626]

Universitatea de Vest din Timișoara
Facultatea de Matematica și Informatica

Proiect
Procese și management în ingineria software
Baze de date non -SQL

Profesor: Dr. Ș tefan IOVAN Student: [anonimizat]: An I
Specializare: Inginerie Software

2017

2
Cuprins

Cuprins
Capitolul I – Introducere ………………………….. ………………………….. ………………………….. ………………………… 4
1.1 Baza de date ………………………….. ………………………….. ………………………….. ………………………….. ……. 4
1.2 Caracter istici baze de date relaționale ………………………….. ………………………….. ………………………….. . 5
1.3 Problemele unei baze de date relaționale ………………………….. ………………………….. ………………………. 6
1.4 Baze de date NoSQL ………………………….. ………………………….. ………………………….. …………………….. 6
1.4.1 Clasificare baze de date NoSQL ………………………….. ………………………….. ………………………….. .. 9
1.4.2 Avantaje generale ale bazelor de date NoSQL ………………………….. ………………………….. ………….. 9
1.4.3 Dezavantaje ale bazelor de date NoSQL ………………………….. ………………………….. …………………. 9
1.5 Baze de date relaționale vs baze de date NoSQL ………………………….. ………………………….. ………. 11
Capitolul II – Amazon DynamoDB (tip cheie -valoare) ………………………….. ………………………….. ……………. 12
2.1 Ce este Amazon DynamoDB ………………………….. ………………………….. ………………………….. …………. 12
2.2 Caracteristici ………………………….. ………………………….. ………………………….. ………………………….. …..13
2.3 Funcți i ………………………….. ………………………….. ………………………….. ………………………….. ………….. 14
2.3.1 Crearea de date ………………………….. ………………………….. ………………………….. ……………………… 14
2.3.2 Datele de citire ………………………….. ………………………….. ………………………….. ……………………… 14
2.3.3 Actualizarea datelor ………………………….. ………………………….. ………………………….. ……………….. 15
2.3.4 Ștergerea datelor ………………………….. ………………………….. ………………………….. ……………………. 15
Capitolul III – MongoDB(tip document) ………………………….. ………………………….. ………………………….. …..16
3.1 Ce este MongoDB? ………………………….. ………………………….. ………………………….. ……………………… 16
3.2 Caracteristici MongoDB ………………………….. ………………………….. ………………………….. ……………….. 17
3.3 Modelul de date Mongo ………………………….. ………………………….. ………………………….. ………………… 18
3.4 Exemplu de arhitectură ………………………….. ………………………….. ………………………….. …………………. 19
3.5 Baze de date NoSQL și Cloud Computing ………………………….. ………………………….. ……………………. 19
3.6 Instrumente oficiale ………………………….. ………………………….. ………………………….. ……………………… 19
3.7 Monitorizare ………………………….. ………………………….. ………………………….. ………………………….. …..20
3.8 Interfețe grafice ………………………….. ………………………….. ………………………….. ………………………….. .20
Capitolul IV BigTable(tip coloane) ………………………….. ………………………….. ………………………….. …………. 21
4.1 Ce este BigTable? ………………………….. ………………………….. ………………………….. ……………………….. 21
4.2 Caracteristici ………………………….. ………………………….. ………………………….. ………………………….. …..21
Capitolul V – Neo4J(tip graf) ………………………….. ………………………….. ………………………….. …………………. 23
5.1 Ce este Neo4J ………………………….. ………………………….. ………………………….. ………………………….. …23

3
5.2 Caracteristicii ………………………….. ………………………….. ………………………….. ………………………….. ….24
5.3 Trei Primitive principale în Neo4j: ………………………….. ………………………….. ………………………….. ….24
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 26
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ……………. 27

4
Capitolul I – Introducere

1.1 Baza de date
O bază de date este o colecție de date care sunt organizate după anumite reguli, care ajută la
stocarea informațiilor și la regăsirea acestora oferind posibilitatea de a modifica sau de a șterge
anumite informații, folosind diferite operații de procesare a datelor. Aceasta conține înregistrări care
sunt văzute ca entității specifice formate la fel.
Înregistrările sunt componentele de bază care conțin valori numerice, texte și reprezentări
grafice.
Există două tipuri de baze de date:
– Ierarhice care au o structură în formă de arbore pentru a memora datele, ocupând mult spațiu
– Relaționale care permit divizarea, datele fiind regăsite în mai multe fișiere și ocupă mai puțin
spațiu
Bazele de date au anumite funcții:
– Rețin date, imagini sau valori
– Țin evidența operațiilor efectuate asupra lor
– Stochează anumite texte integrale1
Baza de date poate conținetabele. Acestea tabele conțin coloane și rânduri.Tabele sunt mai
exactfișiereîn care sunt stocate informațiile. Ele poartă nume, care sunt unice pentru fiecare tabelă,
permițând astfel utilizatorului să le poată găsi cât mai ușor. Ele prezintă proprietăți care le transmit
modul în care acestea trebuie să păstreze datele.
Bazele de date sunt foarte utile deoarece în cazul unor pierderi se poate r ealiza procesul de
back-up, reconstituindu -se starea bazei de date de la ultima salvare.
Evoluția bazelor de date poate să fie urmărită în imaginea de mai jos:

Evoluția bazelor de date2

1 http://www2.unitbv.ro/LinkClick.aspx?fileticket=8Gsfz0SfMt0%3D& tabid=4146&language=en -US

5
Cele mai folosite baze de date sunt cele relaționale.
SQL (Structured Query Language) este în prezent, unul din cele mai puternice limbaje
structurate pentru interogarea bazelor de date relaționale.
Este un limbaj neprocedural și declarativ, deoarece utilizatorul descrie ce date vrea să
obțină, fără a fi nevoie să stabilească modalitățile de a ajunge la datele respective. Nu poate fi
considerat un limbaj de programare sau unul de sistem, ci mai degrabă face parte din categoria
limbajelor de aplicații, fiind orientat pe mulțimi. Foarte frecvent, este utilizat în a dministrarea
bazelor de date client/server, aplicația client fiind cea care generează instrucțiunile SQL.
Există 3 metode de bază privind implementarea limbajului SQL:
− apelare directă (Direct Invocation): constă în introducerea instrucțiunilor direct d e la prompter
− modulară (Modul Language): folosește proceduri apelate de programele aplicație
− încapsulată (Embedded SQL): conține instrucțiuni încapsulate în codul de program
SQL poseda un set cuprinzator de comenzi pentru o mare diversitate de sarcini, printre care:
· Interogarea datelor
· Actualizarea, inserarea si eliminarea datelor
· Crearea, modificarea si eliminarea obiectelor bazelor de date
· Controlul accesului la baza de date
· Asigurarea integritatii si consistentei datelor
O instructiune SQL este un set de directive care specifica serverului Oracle sa efectueze o
actiune. Aceste instructiuni contin cuvinte rezervate si au o sintaxa specifica. O instructiune SQL
incompleta nu poate fi executata; la întâlnirea unei a stfel de instructiuni, programul Oracle
returneaza o eroare.
SQL este un limbaj foarte performant de pe urma caruia beneficiaza toate tipurile de
utilizatori ai bazelor de date Oracle, si anume:
· Administratorii bazei de date
· Creatorii de aplic atii
· Administratorii de securitate ai bazei de date
· Utilizatorii finali
SQL este un limbaj foarte flexibil care va permite sa dezvoltati programe performante. SQL
va permite sa lucrati cu grupuri mari de date. în plus, limbajul SQL permite uti lizarea rezultatelor
unei interogari ca date de intrare pentru o alta instructiune de interogare.
Limbajul SQL va scuteste de efortul de a stabili metoda corecta de acces. Sistemul Oracle
utilizeaza propriile capacitati de optimizare pentru a determina ce le mai rapide si eficiente mijloace
de accesare a datelor. Acest lucru simplifica aplicatiile si reduce eforturile de proiectare.
Prin definirea limbajului SQL ca unic limbaj de accesare a bazei de date, programul Oracle elimina
compromisurile potentiale r eferitoare la securitate si la date.

1.2 Caracteristici baze de date relaționale
– Independența datelor memorate în aplicație – se asigura imunitatea programelor de aplicații
la schimbăriile ce au loc în baza de date
– Nivel redus de redundanță – se menține redundanța datelor, dar este un fenomen controlabil
– Securitatea datelor – se pot aplica restricții de securitate a datelor pentru accesul neautorizat

2 Marin Fotache, SQL Dialecte DB2, Oracle și Visual FoxPro, POLIROM, 2001, pagina 21

6
– Integritatea datelor – se asigură corectitudinea datelor în orice moment al funncționării
sistemului, cu posibilitatea refacerii versiunilor anterioare
– Transparența – se poate folosi baza de date fără ca utilizatorii să cunoască baza de date în
întreaga ei complexitate
– Limbaje de cereri – existența unor limbaje performante de regăsire a datelor
– Diversitatea criteriilor – la bazele de date accesul la informații se poate face după o mulțime
de criterii de regăsire
– Facilități multiutilizator – datele pot fi accesate și gestionate din difeite noduri ale rețelei de
calculatoare de diferiți utilizatori
– Accesibilitate – oferă o interfață ușoară și oferă instrumentele necesare concepți ei
programelor3

1.3 Problemele unei baze de date relaționale
Problemele care apar la bazele de date relaționale sunt:
– Baza de date este format ă dintr -o mulțime de relații (tabele). Fiecare relație are o schem ă
fixă. Modificarea acestei scheme poate cere modificarea aplicațiilor, uneori cu costuri mari.
– Pentru a opti miza interogarea, mai exact pentru a elimina unele operații de join, se poate
face o denormalizare, care implic ǎ verificarea unor restricții de integritate ȋn aplicațiile
client.
– Unele informații sunt mai greu de memorat în modelul relațional: coșuri de c umpărături,
informații despre persoane, etc.
– Este dificil de a interoga date care depind de alte date, deci este necesar ă o interconectare a
datelor.4
1.4 Baze de date NoSQL
Problemele descrise mai sus au apărut mai ales la unele companii legate de web 2.0, ca de
exemplu: Google, Amazon, Yahoo, Facebook, Twitter, etc. Pentru a se rezolvarea acestor probleme
s-au propus soluții NoSQL (not only SQL).
Sistemele de tip NoSQL pot folosi și folosesc ș i ele limbaje de cereri, ca de exemplu:
– UnSQL 6
– Xquery
Termenul de NoSQ a fost utilizat prima datǎ ȋn 1998 relativ la o bazǎ de date care nu folosea
SQL pentru gestiune. Acest termen a fost reluat, cu semnificația de azi, ȋn anul 2009.
Bazele de date NoSQL nu au fost construite după modelul bazelor relaționale, acestea au
fost construite pentru a gestiona volume mari de date, iar datele existente nu sunt fixe. Acestea
folosesc o arhitectură distribuită, astfel datele sunt păstrate în mod redundant pe mai multe servere .
Bazele de date NoSQL oferă o scalabilitate nelimitată cu performanțe importante, împărțind
nodurile în toată baza de date, indiferent cât de mare ar fi aceasta. În acest context, toate bazele de
date NoSQL vor suporta Hadoop, un eco -sistem open source pent ru procesarea paralelă masivă
pentru baze mari de date în cadrul clusterelor a mii de servere. Administratorii de sisteme vor trebui
doar să crească puterea din hardware sau cloud pentru ca resursele acestora să facă față noilor
procese. Unele procese din baza de date pot dura ore pentru procesare, în timp ce utilizând baze de

3 Marian Panțiru, Ionuț Panțiru, Baze de date, varianta FocPro 2.x pentru Windws, L&S INFORMAT, pagina 15,16
4 http://www.rusu.coneural.org/ teaching/MLR5027/2014.BD.Curs.14.pdf

7
date NoSQL distribuite prin clustere Hadoop, procesele pot fi realizate în doar câteva minute. Deși
bazele de date tradiționale bazate pe RDBMS încă domină piața, bazele NoSQL își fac loc in
general în medii care necesită o procesare rapidă și de mare viteză, precum un serviciu de streaming
video. Termenul NoSQL nu este unul nou, fiind utilizat încă de la sfârșitul anilor 1990, cu unele
modele care stau la baza acestuia dezvoltate chia r mai devreme.
Conform dezvoltatorului Couchbase, NoSQL a intrat pe piață la un nivel redus la mijlocul
anilor 2000, urmând ca deja în 2010 NoSQL sa fie utilizat pentru aplicații critice, necesitând deja
garanții de performanță. În prezent, NoSQL este ut ilizat pentru gestionarea bazelor de date ale
unora din cele mai mare magazine de date din lume pentru aplicații precum rețele sociale, analiza
datelor de la senzori și analiza pieței de valori. Ca produse, NoSQL face parte din categoria open
source, Mongo DB dominând piața cu un număr de aproximativ 400 mii de implementări.
Sistemele NoSQL de baze de date sunt adesea ex trem de optimizate pentru operații de
regăsire/adăugare și oferă puține funcționalități legate de memorarea înregistră rilor (me morarea
înregistră rilor sub forma unor perechi, cheie -valoare) . Flexibilitatea run -time redusă (față de
sistemele SQL) este compensată prin creșteri semnificative de performanță și scalabilitate pentru
modele de anumite date.
Bazele de date NoSQL ca noua generați e de baze de date ce îndeplinesc următoarele
condiții: nu sunt relaționale, sunt distribuite, open -source și se caracterizează prin scalabilitate
orizontală. Alte caracteristici ce trebuiesc menționate sunt lipsa unei scheme pentru a modela baza
de date, p rezintă suport pentru replicare, API, nu respectă în întregime ACID, stochează o cantitate
mare de date.
La sistemele NoSQL modelul ACID este greu să fie respectat (mai ales din cauza distribuirii
și replicării), și atunci el se înlocuiește cu modelul BAS E:
– Basic Availability: toți clienții primesc un răspuns la o interogare (în loc de a folosi o
singură sursă de date, colecția de date este replicată și distribuită, deci undeva în rețea este
posibil să existe datele căutate)
– Soft State: consistența bazei de date nu este verificată de SGBD, ea trebuie să fie asigurată
de clientul (programul) care are dreptul de modificare a bazei de date
– Eventual Consistency: baza de date poate să se afle într -o stare de inconsistență (existǎ
valori diferite ale aceleași date), dar se presupune că în viitor datele vor ajunge într -o stare
de consistență. Propagarea modificărilor la replicile datei va fi efectuată în viitor.
O conjectură (a lui Brewer) a fost demonstrată în [GiLy02] și denumită Teorema CAP: Este
imposibil p entru un serviciu web să ofere simultan următoarele trei facilități:
– Consistență (Consistency)
– Disponibili tate la cereri (Availability)
– Facilități pentru partiție (Partition)
Folosind această teoremă, sistemele de baze de date se pot împărți în trei c ategorii (clase)
după proprietățile pe care le au: CA, AP, CP. Deoarece sistemele NoSQL trebuie să permită
partiționarea, acestea sunt incluse în una din c lasele:
– CP (Consistency + Partition): au un grad mai ridicat de consistență, în defavoarea
disponibi lității
– AP (Availability + Partition): au un grad mai ridicat de disponibilitate, în timp ce restricțiile
cerute pentru consistență s -au restrâns (sau chiar eliminat) In [Hurst] se dă următoarea
imagine cu privire la categoriile (clasele)

8

O bază de date NoSQL ignoră principiile RDBMS și nu stochează date folosind tabele ci
folosind chei de identificare. Datele pot fi regăsite în funcție de cheile asignate.
Faptul că bazele de date NoSQL nu au o schemă de date fixă face aceste baze de date să fie
mult mai flexibile și adaptabile la schimbări de model în cursul anilor.
Conform definiției date de Rick Cattell, bazele de date NoSQL prezintă șase trăsături de
bază:
1. Abilitatea de a scala orizontal pe mai multe servere;
2. Abilitatea de a replica și d istribui datele pe mai multe servere;
3. CLI (call level interface) caracterizat prin simplitate (în contrast cu SQL binding);
4. Un model concurențial mai slab decat modelul relațional (ACID);
5. Utilizarea eficientă a indexării distribuite și a RAM pentru o stocare eficientă;
6. Abilitatea de a adăuga dinamic noi atribute la înregistrările existente.5
Astfel evoluția bazelor de date existente sunt prezentate în imaginea de mai jos.

Evoluț ia bazelor de date6

5 Revista Română de Informatică și Automatică, vol. 22, nr. 4, 2012

9
1.4.1 Clasificare baze de date NoSQL
În funcție de modul de î nregistrare a d atelor, sistemele NoSQL pot fi împărțite î n:
– Perechi cheie -valoare (Apache -Cassandra, Dynamo, Hibari, OpenLink Virtuoso, Riak,
Apache River, Apache Hadoop, Tarantools, etc.);
– Implementări BigTable (BigTable este un format de memorare proprietar (Google),
compresat, de înalta performanță);
– Baze de date orientate -document (BaseX, Clusterpoint, Apache CouchDB, eXist,
OrientDB, MavenDB, Simplestore, MongoDB );
– Baze de date graf, în care relațiile sunt bine reprezentate sub forma unui graf
(AllegroGraph, DEX, Neo4j, OWLIM).

1.4.2 Avantaje generale ale bazelor de date NoSQL :
– memorarea unor volume mari de date
– nu există o structură fixă a datelor
– între date se pot stabili legături (prin referințe la date memorate în alte baze de date)
– aceleași date pot sǎ fie memorate pe mai multe servere
– la interogare nu se folosesc operații de join care sunt mari consumatoare de timp
– sunt soluții foarte bune pentru cazuri particulare nu se folosesc pentru orice gestiune de date

1.4.3 Dezavantaje ale bazelor de date NoSQL :
– nu există standarde (cum există standardul SQL la bazele de date relaționale)
– nu se asigurǎ consistența bazei de date (de cǎtre sistemul de gestiune)
– nu existǎ metode performante pentru protecția datelor
– modelele propuse sunt la primele versiuni
– existǎ posibilități limitate de interogare
– aproape toate sistemele apărute sunt open -source
– există relativ puțini dezvoltatori software pentru NoSQL
Conform unui studiu realizat de 451 Group Research intitulat MySQL vs. NoSQL and
NewSQL între 2009 și 2011 s -a înregistrat o scădere în utilizarea MySQL de la 82% la 73%.
Studiul a fost ef ectuat asupra unui eșantion compus din 347 de utilizatori de baze de date
opensource. 49% din respondenți au abandonat soluțiile MySQL pentru a migra la soluții NoSQL.
Astfel se poate observa amenințarea directă pe care o presupune NoSQL asupra MySQL .
Conform aceluiași studiu MySQL este direct amenințat de apariția NoSQL și NewSQL,
acesta din urmă reprezentând un nou set de baze de date relaționale care încearcă să adauge la
modelul relațional performanțele și funcționalitățile bazelor de date NoSQL .
Conform aceluiași studiu MySQL este direct amenințat de apariția NoSQL și NewSQL,
acesta din urmă reprezentând un nou set de baze de date relaționale care încearcă să adauge la
modelul relațional performanțele și funcționalitățile bazelor de date NoSQL.7

6 http://mihaistefanescu1.blogspot.ro/p/nosql.html
7 Revista Română de Informatică și Automatică, vol. 22, nr. 4, 2012

10

Amenințarea NoSQL și NewSQL asupra MySQL8

Printre sistemele NoSQL din ziua de azi pot fi menționate cele open -source, precum Hbase,
MongoDB, CouchDB, GTM .

Tipuri de baze de date NoSQL9

8 https://rria.ici.ro/wp -content/uploads/2012/12/06 -art.-Ularu -si-Puican -revizuit.pdf
9 http://ctrl -d.ro/tips -and-tricks/introducere -in-tematica -bazelor -de-date -in-cloud/

11
Bazele de date nerelationale 10
1.5 Baze de date relaționale vs baze de date NoSQL
Baza de date relațională este formată dintr -o mulțime de relații (tabel e). Fiecare relație are o
schem ă fixă și astfel ajunge să fie foarte costisitoare, pe cțnd bazele de date NoSQL nu au o
structură fixă și pot memora un volum mare de date.
Baza de date relațională memorează unele informații mai greu, cum ar fi: coșuri de
cumpărături, informații despre perso ane, etc, pe când bazele de date NoSQL sunt folosite la
memorare acestor tipuri de informații.
Baza de date relațională folosește operații de JOINpe când bazele de date NoSQL nu
folosesc JOIN, datorită faptului că sunt mari consumatoare de timp.

10 http://www.elth.pub.ro/~preda/teaching/SPABD/SPABD_10.pdf

12

Capitolul II – Amazon DynamoDB (tip cheie -valoare)

2.1 Ce este Amazon DynamoDB
Amazon DynamoDB este un sistem complet gestionat, mai exact o bază de date NoSQL .
Acest serviciu oferă performanțe rapide și previzibile, cu scalabilitate. Puteți utiliza Amazon
DynamoDB pentru a crea un tabel de baze de date care poate stoca și prelua orice cantitate de date,
și va servi orice nivel de trafic cerere.
DynamoDB este rezultatul a 15 ani de învățare în domeniile bazelor de date pe scară largă
non-relaționale și servicii cloud.
Amazon DynamoDB este un serviciu complet gestionat de baze de date NoSQL, care oferă
performanțe rapide la orice scară. aplicatii bazate pe web de astăzi se confruntă deseori cu provocări
de scalare de baze de date atunci când se confruntă cu o creștere în utilizatori, trafic și date. Cu
Amazon DynamoDB, dezvoltatorii de scalare aplicații bazate pe cloud poate începe mici cu doar
capacitatea de care au nevoie și apoi să mărească capacitatea de solicitare a unui anumit tabel ca
aplicație lor crește în popularitate. mesele lor pot, de asemenea, să crească fără limite ca și
utilizatorii magazinului lor cantități crescătoare de date. În spatele scenei, Amazon DynamoDB se
răspândește automat date le și traficul pentru o masă într -un număr suficient de servere pentru a
satisface cererea capacitatea specificată de client. Amazon DynamoDB oferă latențe mici,
previzibile la orice scară. Clienții pot realiza în mod tipic medie de serviciu -side în milise cunde cu o
singură cifră. Amazon DynamoDB stochează datele de pe Solid State Drives (SSD) și replicate -l
sincronă pe mai multe Zone Disponibilitate AWS într -o regiune AWS pentru a oferi built -in
disponibilitate ridicată și durabilitate a datelor.
Amazon D ynamoDB se răspândește automat datele și traficul pentru masa într – un număr
suficient de servere pentru a gestiona capacitatea de solicitare specificată de client și de cantitatea
de date stocate, menținând în același timp performanțe constante și rapide .
Modelul său de date flexibile și performanță de încredere oferă o potrivire mare pentru
mobil, web, jocuri și multe alte aplicații.
DynamoDB vă permite să ștergeți elementele expirate din tabele în mod automat pentru a
vă ajuta să reduceți utilizarea spațiului de stocare și costul de stocare a datelor , care nu mai este
relevant.
DynamoDB se răspândește automat datele și traficul pentru tabelele peste un număr
suficient de servere pentru a satisface cererile de throughput și de stocare, menținând în a celași timp
performanțe constante și rapide. Toate datele sunt stocate pe discuri solid state (SSD) și replicate în
mod automat pe mai multe Zone Disponibilitate într -o regiune AWS, oferind built -in disponibilitate
ridicată și durabilitate a datelor.
În DynamoDB, tabele, elemente și atribute sunt componentele de bază pe care
lucrați. Untabel este o colecție de articole , iar fiecare element este o colecție
de atribute . DynamoDB utilizează chei primare pentru a identifica în mod unic fiecare element
dintr – un tabel și indexurile secundare pentru a oferi mai multă flexibilitate interogari. Puteți utiliza
DynamoDB Curente pentru a captura evenimente de modificare a datelor în tabele DynamoDB.

13
Pentru a lucra cu DynamoDB, cererea dumneavoastră va trebui să utilizați câteva operații
simple AP I.
Baza de date este formată dintr -o colecție de perechi (cheie, valoare), asemănătoare
colecțiilor (tabelelor) asociative din unele limbaje de programare. Cheia și valoarea sunt șiruri de
caractere, iar cheile sunt dist incte (se folosesc pentru identificare). Operațiile permise în această
bază de date sunt:
– adăugarea unei perechi la colecție
– eliminarea unei perechi din colecție
– modificarea valorii dintr -o pereche existentă
– consultarea valorii pentru o cheie dată.
Valoarea este un șir de caractere sau o datǎ binarǎ și nu este interpretată de sistem (este
analizată de client)
2.2 Caracteristici
– Scalabilă . Amazon DynamoDB este proiectat pentru a scala resursele dedicate unui tabel
de la sute sau chiar mii de servere distribuite pe mai multe fusuri Disponibilitate pentru a
satisface cerințele de stocare și rezultat e.
– Rapid . Amazon DynamoDB oferă capacitate mare de latență foarte scăzută. Este ,
de asemenea ,construit pe Solid State Drives pentru a ajuta la optimizarea pentru
o performanță ridicată chiar și la scară înaltă. Mai mult decât atât, prin faptul că nu indexeze
toate atributele, costul operațiunilor de citire și scriere este scăzut ca operațiunile de scriere
implică actualizarea doar primar indicele cheie , reducând astfel timpul de latență a ambelor
operații de citire și scriere. O aplicație care rulează în EC2 se va vedea în mod tipic latențe
medii de servicii de bordaj în intervalul milisecundă cu o singură cifră pentru un obiect
1KB. Cel mai impor tant, latențe DynamoDB sunt previzibile. Chiar și seturi de date cresc,
latențe rămân stabile din cauza naturii distribuite de algoritmi de plasare a datelor și cererea
de rutare DynamoDB lui.
– Durabil și foarte disponibile . Amazon DynamoDB reproduce datel e sale de peste cel puțin
3 centre de date diferite , astfel încât sistemul să poată continua să funcționeze și
să servească date chiar și în scenarii complexe de eșec.
– Flexibil . Amazon DynamoDB este un sistem extrem de flexibil , care nu obligă utilizato rii
săi într – un anumit model de date sau un anumit model de consistență. Tabele DynamoDB
nu au o schemă fixă , ci permite fiecărui element de date să aibă un număr de atribute,
inclusiv atributele multi -evaluate. Dezvoltatorii pot utiliza opțional modele de consistență
mai puternice la accesarea bazei de date, de tranzacționare de pe o anumită performanță și
disponibilitate pentru un model mai simplu. Ele pot lua , de asemenea beneficia de
funcționalitatea incrementare / decrementare atomic DynamoDB pentr u contoare.
– Cost redus . De stabilire a prețurilor Amazon DynamoDB este simplu și previzibil: Spațiul
de stocare este de 1 $ per GB pe lună. Cererile sunt tarifate în funcție de cât de mult
capacitate este rezervată: 0.01 $ pe oră pentru fiecare 10 de unități de scriere Capacitate si
0.01 $ pe oră pentru fiecare 50 de unități de citire Capacitate. O unitate de citire (sau scrie)
Capacitate de citire este egal cu una (sau scrie) pe secundă de capacitate pentru elementele
de până la 1KB în dimensiune. Dacă ut ilizați în cele din urmă citește consecvent, puteți
obține de două ori mai multe citește pe secundă pentru o anumită cantitate de citire
Capacitate. Elemente mai mari vor necesita o capacitate suplimentară de transfer.

14
2.3 Funcții
Planul de control operațiunile vă permit să creați și să gestionați tabelele DynamoDB. De
asemenea , acestea vă permit să lucrați cu indici, fluxuri și alte obiecte care sunt dependente de
tabele.
– CreateTable – Creează un nou tabel. Opțional, puteți crea unul sau mai mulți i ndici secundari,
și activați DynamoDB Curente pentru masa.
– DescribeTable – Returnează informații despre un tabel, cum ar fi schema de primar cheie,
setările de throughput, informații de index, și așa mai departe.
– ListTables – Returnează numele tuturor tabel elor dumneavoastră într -o listă.
– UpdateTable – modifică setările unui tabel sau indexurile sale, creează sau eliminați noi
indici pe o masă, sau modifică setările pentru DynamoDB Streams un tabel.
– DeleteTable – Îndepărtează o masă și toate obiectele sale d ependente de DynamoDB.
Planul de date operațiuni vă permit să efectuați crea, citi, actualiza și șterge ( de asemenea
,numit CRUD ) acțiuni de date într – un tabel. Unele dintre operațiunile de avion de date permit ,
de asemenea , să citiți datele de la un indice secundar.

2.3.1 Crearea de date
– PutItem – Scrie un singur element la un tabel. Trebuie să specificați atributele cheie primare,
dar nu trebuie să specificați alte atribute.
– BatchWriteItem – Scrie până la 25 de elemente la o masă. Acest lucru este mai eficient decât
de asteptare de PutItem mai multe ori pentru că cererea dumneavoastră are nevoie doar de o
singură călătorie dus – întors de rețea pentru a scrie articole. Rețineți că puteți utiliza ,
de asemenea , BatchWriteItem pentru a șterge mai mult e articole dintr – unul sau mai multe
tabele.

2.3.2 Datele de citire
– GetItem – Extrage un singur element dintr -un tabel. Trebuie să specificați cheia principală
pentru elementul pe care doriți. Puteți prelua întregul element, sau doar un subset de
atribut ele sale.
– BatchGetItem – Recuperează până la 100 de elemente de la una sau mai multe tabele. Acest
lucru este mai eficient decât de asteptare de GetItem mai multe ori pentru că cererea
dumneavoastră are nevoie doar de o singură călătorie dus – întors de rețea pentru a citi
articolele.
– Query – Recuperează toate elementele care au o cheie partiție. Trebuie să specificați valoarea
cheii partiție. Puteți prelua articole întregi, sau doar un subset de atributele lor. Opțional,
puteți aplica o condiție pentru va lorile cheie de sortare, astfel încât să preluați doar un subset
al datelor, care are aceeași cheie partiție. Puteți utiliza această operație pe o masă, cu
condiția ca masa are atât o cheie partiție și o cheie de sortare. Puteți folosi, de asemenea,
aceast ă operațiune pe un indice, cu condiția ca indicele are atât o cheie partiție și o cheie de
sortare.
– Scan – Recuperează toate elementele din tabel sau indexul specificat. Puteți prelua articole
întregi, sau doar un subset de atributele lor. Opțional, puteți aplica o condiție de filtrare
pentru a returna numai valorile care vă interesează și aruncați restul.

15
2.3.3 Actualizarea datelor
– UpdateItem – unul sau mai multe Modifică atribute într -un element. Trebuie să specificați
cheia principală pentru elementul pe care doriți să o modificați. Puteți adăuga noi atribute,
precum și modifica sau elimina atributele existente. Puteți efectua, de asemenea, actualizări
condiționată, astfel încât actualizarea are succes doar atunci când o condiție definită de
utilizator est e îndeplinită. Opțional, puteți pune în aplicare un contor atomic, care
incrementează sau decrementează un atribut numeric, fără a interfera cu alte solicitări de
scriere.

2.3.4 Ștergerea datelor
– DeleteItem – Șterge un singur element dintr -un tabel. Trebuie să specificați cheia principală
pentru elementul pe care doriți să -l ștergeți.
– BatchWriteItem – Șterge până la 25 de elemente de la una sau mai multe tabele. Acest lucru
este mai eficient decât de asteptare de DeleteItem mai multe ori pentru că cererea
dumneavoastră are nevoie doar de o singură călătorie dus – întors de rețea pentru a șterge
elementele. Rețineți că puteți utiliza , de asemenea , BatchWriteItem pentru a adăuga mai
multe elemente la una sau mai multe tabele.
DynamoDB Curente operaț iuni vă permit să activați sau să dezactivați un flux pe o masă, și
să permită accesul la înregistrările de modificare a datelor conținute într – un flux.
– ListStreams – Returnează o listă a tuturor fluxurilor de dvs., sau doar fluxul pentru o anumită
tabel ă.
– DescribeStream – Returnează informații despre un flux, cum ar fi numele Amazon Resource
(ARN) și în cazul în care aplicația poate începe să citească primele câteva înregistrări flux.
– GetShardIterator – Returnează un iterator ciob , care este o structură de date care aplicația
utilizează pentru a prelua înregistrările din fluxul.
– GetRecords – Recuperează una sau mai multe înregistrări flux, folosind un anumit iterator
ciob.11

11 http://docs.aws.amazon.co m

16
Capitolul I II – MongoDB (tip document)

3.1 Ce este MongoDB?
Acesată bază de date este ușor de folosit pentru utilizatorii de RDBMS -uri. MongoDB
lucrează cu date nestructurate și organizează aceste date în format document. Implementarea acestei
baze de date este mai ușoară decat un RDBMS deoarece ea urmărește modelul cheie valoare și nu
are nevoie de o schemă predefinită a datelor. Conceptele acesteia pornesc de la concepte
tradiționale, de aceea întelegerea filosofiei acestei baze de date este ceva ușor de realizat.
MongoDB este o bază de date open -source NoSQL scrisă în C++. Ace asta poate conține mai
multe baze de date, colecții și indecși. În unele cazuri (baze de date și colecții ) aceste obiecte pot fi
create implicit. Odată create, ele se găsesc în catalogul sistemului db.systems.collection,
db.system.indexes. Colecțiile conț in documente (BSON). Aceste documente conțin la rândul lor
mai multe câmpuri. În MongoDB nu există câmpuri predefinite spre deosebire de bazele de date
relaționale, unde există coloanele care sunt definite în momentul în care tabelele sunt create. Nu
exist ă schemă pentru câmpurile dintr -un document, acestea precum și tipurile lor pot varia. Astfel
nu există operația de „alter table” pentru adăugare de coloane. În practică este obișnuit ca o colecție
să aibă o structură omogenă, deși nu este o cerință, colec țiile putând avea structuri diferite. Această
flexibilitate presupune ușurință în migrarea și modificarea imaginii de ansamblu asupra datelor.
Baza de date nerelațională , din categoria NoSQL , satisfacând noile cerinț e ale tehnologiilor
informatice care trebuie sa asigure:
1. Lucrul cu volume mari de date;
2. Dezvoltarea agila a programelor;
3. Cloud computing .
În MongoDB orice câmp poate fi interogat în orice moment. MongoDB ofera su port pentru
interogari de lungime mare și căutare de expresii regulate. Interogările pot include funcții JavaScript
definite de utilizatori (dacă funcția întoarce valoarea true, înseamnă că documentul a făcut match).
Interogările pot intoarce câmpuri speci fice (nu neaparat tot documentul), și rezultatele pot fi 3
sortate, sărite și limitate.
Paralelă între termenii MySQL și conceptele MongoDB :

MySQL vs MongoDB12

12 https://rria.ici.ro/wp -content/uploads/2012/12/06 -art.-Ularu -si-Puican -revizuit.pdf

17
O bazǎ de date conține diverse colecții de documente (obiecte), analog tabelelor dintr -o bazǎ
de date relaționalǎ. Intr -o colecție se grupeazǎ documentele utile ȋntr -o interogare. Intre colecții
diferite nu se pot efectua operații de join.
Baza de date și colecțiile din baza de date se identificǎ printr -un nume (pentru numele bazei
de date nu s e poate folosi: admin, local, config).
Un document (obiect) nu are o structurǎ stabilitǎ • un document are o identificare unicǎ ȋn
colecția de date, pr in cȃmpul cu denumirea "_id".
Caracterele (din denumiri, d in valori) sunt case -sensitive.
Pentru ge stiunea unei baze de date și a unei colecții existǎ mai multe metode .
Un document este format dintr -o mulțime de perechi (cȃmpuri) nume/valoare, precizat sub
forma următoare:

Aceastǎ structurǎ de document se folosește pentru:
– documentele memorate ȋn b aza de date
– precizarea condițiilor pe care le ȋndeplinesc documentele utile ȋntr -o comandǎ (citire,
actualizare, ștergere) { string : valoare }
– precizarea tipurilor de modificǎri pentru documente
– specificarea modului de construire a indexurilor
– diverse opțiuni ȋn comenzi
3.2 Caracteristici MongoDB
– Stocarea datelor sub formă de documente – Baza de date MongoDB stochează obiecte
(documente). Aceste documente reduc nevoia de join;
– Prezintă support pentru indexare – Indexarea pe fiecare din atribute se face în modul
tradițional (RDBMS) asupra cheilor de regăsire ale documentelor;
– Disponibilitate – Disponibilitatea datelor este asigurată printr -un proces automat de failover;
– Auto -Sharding – Shardingul sau partiționarea datelor pe orizontală se face automat. Citirile
și scrierile sunt distribuite pe partiții. Lipsa joinurilor face ca interogările distribuite să fie
rapide;
– Limbajul de interogare – Limbajul de interogare este îmbunătă țit și păstrează principii Sql și
C++;
– Scalabilitate orizontala: Pot fi adaugate noi servere), fara sa fie afectata functionalitatea (in
timpul in care baza de date "lucreaza").
– Modificări rapide – MongoDB suportă operații de actualizare atomice cât și pe cele
tradiționale.
– Map/ Reduce – MongoDB folosește map/reduce pentru agregare și procesare batch;
– GridFS – Poate stoca fișiere de dimensiuni mari fără a complica stiva de date;
– Suport – Există o cantitate mare de informații online – tutoriale, cărți for umuri ce servesc
pentru a asimila rapid lucrul cu MongoDB
– Replicare – MongoDB asigura replicarea asincrona a datelor intre servere in cazul unei
probleme. Practic, fiecare document va avea o multime de replici.

18

Replicare13
Instalarea MongoDB este extrem de simplă. Această bază de date poate fi intalată pe sisteme
de operare variate, incluzând Windows, Linux, Ubuntu, Debian și OS X.

3.3 Modelul de date Mongo
Un sistem MongoDB conține un set de baze de date. O bază de date conține un set de
colecții. O colecție conține un set de documente. Un document conține un set de câmpuri. Un câmp
conține o pereche cheie -valoare. Ocheia este un nume (string). O valoare poate fi orice tip de dată:
string, integer, float, un document sau un vector de documente etc.
Pentru a demonstra funcționalitățile MongoDB vom construi o aplicație utilizând shellul
MongoDB. Shell -ul interactiv este inclus în distribuția MongoDB. Pentru a începe lucrul cu acest
shell trebuie apelat fișierul ./bin/mongo din locația unde a fost insta lată baza de date. Dacă se
rulează fără nici un parametru, atunci conectarea se va face la o bază de date numită test ce rulează
pe mașina locală.
Când shell -ul este lansat în execuție, se verifică dacă în directorul home există fișierul
.mongorc.js. Dac ă acesta este găsit, atunci conținutul lui este interpretat și rulat înainte de a afișa
promptul.

13 http://mihaistefanescu1.blogspot.ro/p/mongodb -prezentare -generala.html

19
3.4 Exemplu de arhitectură

Exemplu a rhitectură14

3.5 Baze de date NoSQL și Cloud Computing
Odată cu stabilizarea tehnologiilor legate de Cloud Computing, bazele de date de tipul
NoSQL devin tot mai atractive, atât datorită suportului nativ pentru scalabilitate și arhitecturi
distribuite, cât și pentru faptul că multe dintre acestea pot fi oferite ca și servicii, pe modelul pay-as-
you-go.
În func ție de tipul problemei care se dorește a fi rezolvată, există mai multe feluri de baze de
date NoSQL. Tabelul următor exemplifică principalele tipuri, precum și cele mai cunoscute
implementări comerciale.
3.6 Instrumente oficiale
Cel mai puternic și util instrument de management este clientul mongo în linie de comandă
(denumit și shell). Shell ul permite dezvoltatorilor vizualizarea, inserarea, ștergerea și updatarea
datelor în bazele lor de date, cât și obținerea de informații despre replicare, setar ea unei fragmentări,
oprirea unor servere, executarea de cod JavaScriptm și multe altele. Mongo este construit pe
SpiderMonkey, prin urmare este un shell în totalitate JavaScript care are abilitatea de a se conecta la
serverele MongoDB.
Informațiile admi nistrative pot fi de asemenea accesate prin intermediul interfeței de
administrator: o pagină simplă html care servește informații despre statusul curent al serverului. Din
construcție, această interfață are 1000 de porturi peste portul bazei de date (http ://localhost:28017)
și poate fi oprit cu opțiunea norest.
“Mongostat” este un instrument în linie de comandă care afișează o listă simplă de statistici
în legatură cu ultima secunda: care inserări, update uri, ștergeri, query uri și comenzi au fost
efectuate, cât și procentul de timp în care bază de date a fost blocată și câtă memorie utilizează.
“Mongosniff” scanează traficul de rețea care intră și iese din MongoDB.

14 http://andrei.clubcisco.ro/cursuri/f/f -sym/3bd/14.%20Baze%20de%20date%20non%20SQL.pdf

20
3.7 Monitorizare
Exista plugin uri de monitorizare disponibile pentru MongoDB:
– munin
– ganglia
– scout
– cacti

3.8 Interfețe grafice
Au fost create diverse interfețe grafice de către dezvoltatorii comunității MongoDB cu
scopul de a facilita vizualizarea datelor. Print re cele mai populare se afla:
– Fang of Mongo – o interfață grafică bazată pe web cu Django ș i jQuery
– Futon4Mongo – o clonă a interfeț ei web CouchDB Futon pentru MongoDB
– JMongoBrowser – o aplicaț ie de sktop pentru toate platformele
– Mongo3 o interfață bazată pe Ruby
– MongoHub – o aplica ție nativă Mac OS X pentru managementul MongoDB
– Opricot un shell MongoDB bazat pe browser scris în PHP

21
Capitolul IV BigTable(tip coloane)

4.1 Ce este BigTable?
Bigtable este un comprimat , de înaltă performanță, și de proprietate sistem de stocare
a datelo r construit pe sistemul de fișiere Google , Chubby Lock service , SSTable (stocare log –
structurat ca LevelDB ) și alte câteva Google tehnolog ii. La 06 mai 2015, o versiune publică a
Bigtable a fost pusă la dispoziție ca serviciu. Bigtable , de asemenea , sta la baza Google Cloud
Datastore , care este disponibil ca parte a Google Cloud Platform .
BigTable este un serviciu de baze de date NoSQL mari de date Google. Este aceeași bază de
date care alimenteaz ă multe servicii Google de bază, inclusiv de căutare, Google Analytics, Google
Maps și Gmail.
BigTable este proiectat să se ocupe de sarcinile de lucru masive la latență scăzută
consistentă și cu randament ridicat , deci este o alegere excelentă atât pent ru aplicații operaționale și
analitice, inclusiv internetul obiectelor, de analiză de utilizator, și analiza datelor financiare .

4.2 Caracteristici
– Performanta ridicata – BigTable are o performanță mai mare sub sarcină
ridicată decât produse alternative. Aceasta înseamnă că aplicațiile mari și
fluxuri de lucru sunt mai rapide, mai fiabile și mai eficiente care rulează
pe BigTable.
– Securitate și permisiuni – Toate datele sunt criptate atât în timpul zborului și în repaus. Puteți
utiliza permi siunile la nivel de proiect pentru a controla cine are acces la datele stocate în
Cloud Bigtable.
– Latență redusă de stocare – BigTable utilizează o stivă de stocare latență redusă, care să
permită o singură cifră milisecundă latență la percentila 99, în co mparație cu mai mult de
50x, care latenta cu produse alternative.
– Complet Gestionat – BigTable este oferit ca un serviciu complet gestionat, ceea ce înseamnă
că petreceți timpul în curs de dezvoltare aplicații valoroase în loc de configurarea și reglarea
bazei de date pentru performanță și scalabilitate. În plus, Google propria echipa de
operațiuni Bigtable monitorizează serviciul pentru a se asigura aspecte sunt abordate rapid.
– Redundant autoscaling Storage – BigTable este construit cu o strategie redundan t de stocare
internă pentru o durabilitate ridicată. Nu aveți nevoie să configurați de stocare sau discuri
separat, și veți plăti numai pentru cantitatea de stocare pe care îl utilizați.
– Redimensionarea Cluster fără sudură – Puteți adăuga dinamic și elimin a nodurile de cluster
BigTable fără a reporni. BigTable reechilibrează în mod automat datele dvs., ajutând
aplicațiile și fluxurile de lucru stați în sus și să fie difuzate.
– HBase Compatibil – În plus față de API -based RPC nativ, BigTable oferă o interfață HBase –
compatibil. Acest lucru permite portabilitatea aplicațiilor între HBase și BigTable.
– Disponibilitate globală – BigTable este disponibil în regiuni din întreaga lume, permițându –
vă să plasați serviciul și datele dvs. exact acolo unde doriți.
Sistem de stocare de date peste Google File System, Chubby, Lock Service, SSTable s.a .
sisteme proprietare Google;

22
A fost dezvoltat începand cu 2004 și este folosit acum î n indexarea web, MapReduce,
GoogleMaps, Google Book Search, Orkut, YouTube.
Mapează dou ă valori arbitrare de st ringuri (cheia liniei și cheia coloanei) și un timestamp
într-un byte -array asociat arbitrar. Cel mai bine poate fi d efinit ca o mapare sortata, rară, distribuită,
multidimensională.
Proiectat să scaleze efficient în sisteme cu sute de mii de maș ini, cu adăugarea dinamică, în
timp real, de mașini adiționale, fără reconfigurare și fără scăderea performanț ei.
Google descriere amănunțită a lucrarilor interioare Bigtable a permis altor organizații și
echipele de dezvoltare open sour ce pentru a crea derivați Bigtable, inclusiv Apache HBase baza
de date, care este construit pentru a rula pe partea de sus a Hadoop Distributed File System
(HDFS). Alte exem ple includ Cassandra , care a provenit de la Facebook Inc., și Hypertable, o
tehnologie open source , care este comercializat într – o versiune comercială ca o alternativă l a
HBase.
Un tabel începe cu doar un singur comprimat. Pe măsură ce crește masa, este împărțită în
mai multe tablete. În mod implicit, un tabel este împărțit la aproximativ 100 la 200 MB.
Rânduri Localizarea în cadrul unui BigTable este gestionat într – o ierarhie pe trei nivele. Rădăcină
(top-level) stochează locația tuturor tabelelor de metadate într – o specială tabelă metadate .Fiecare
tabel de metadate conține locația tabletelor de date de utilizator. Acest tabel este fixată de ID – uri
de nod și fiec are rând identif ică ID tabel și sfârșitul rând un tabel . Pentru eficiență, biblioteca client
cache locații de tip tabel .
în bazele de date relaționale valorile coloanelor se memorează consecutiv pentru o
înregistrare, deci se are acces rapid la toate valo rile din înregistrare => mod de memorare orientat
linie. In modelul BigTable se memorează consecutiv valorile nenule din fiecare coloană (în cele mai
multe cazuri la interogări nu se doresc valorile din toate coloanele) => mod de memorare orientat
coloană. Fiecare înregistrare se identifică prin valorile unei chei.

23
Capitolul V – Neo4J (tip graf)

5.1 Ce este Neo4J
Neo4J este c ea mai cunoscută implementare de bază de date de tip graf. Aceasta este
implementat ă în Java și este d ezvoltat ă de compania Neo. Pentru interogarea datelor se folosește
limbajul Cypher.
Are l egatură cu limbaje: Py thon, Jython, Ruby, Closure și licență GPL/AGPL;.
Motor Java 100% transacțional care stochează datele structurate în grafuri în loc de tabele.
Structura de date folosește noduri, laturi/corzi și proprietăți pentru a stoca informația și
fiecare element conține un pointer direct că tre datele adiacente și nu e nevoie de indexare.
Nodurile con țin entităț i ca de exemp lu persoane, conturi, companii. Proprietăț ile sunt
atribute associate unei anume entităț i; ex: dacă o entitate se numeș te “Google ” ea ar putea să fie
legată de o proprietate care se numește “web search engine”. Legăturile între entități sau între
entitați și proprietăț i sun t realizate prin corzi/laturi.
Ne este nevoie să se “aplatizeze” struct uri de tip graf pentru stocare ș i seri alizare, acestea
sunt reprezentate în mod natural.
Are amprenta foarte mică (un *.jar < 500 kB) și este folosit de: Accenture, Adobe, Deutsche
Telecom, eBay, SFR, Cisco .
Presupunem că avem de memorat o mulțime de date semistructurate, sau un tabel dintr -o
bază de date relațională. Fiecare entitate (înregistrare) se identifică prin valoarea unei chei. O astfel
de entitate are valori pentru anumite atribute (proprietǎți, pre dicate, coloane). Vom construi o
mulțime de triplete cu următorul conținut: (identificare_entitate, nume_atribut, valoare_atribut)
Cu aceste triplete se poate construi un graf orientat, pentru un triplet apare un arc de forma
următoare:

Vârfurile grafului pot să fie de două tipuri: identificări de entități (desenate ca o elipsă), sau
constante (desenate ca un dreptunghi). Valoarea unui atribut poate să fie o identificare de entitate, și
atunci este de primul tip.

Neo4j este un sistem de management de baze de date grafic de conducere din lume open
source și dezvoltat de Neo Technology, Inc.
Acesta este proiectat pentru optimizarea gestionării rapide, de stocare și a nodurilor și
traversarea relațiilor.
Este foarte scalabil de baze de date, grafic nativ construit pentru a pârghie de date și relația
lor
Acesta oferă o performanță constantă în timp real, care permite întreprinderilor să
construiască aplicații pentru a răspunde provocărilor în continuă evoluție de date actuale.

24
5.2 Car acteristicii
1. schemă flexibilă
2. Scalarea și performanța
3. Drivere pentru limbi și cadre populare
4. Cloud gata
5. puternic limbaj de interogare Cypher
6. Import de date
7. Hot Backupurile

5.3 Trei Primitive principale în Neo4j:
1. Nodurile – Este ca și tabelul de baze de date relationale unde am stoca datele. ex.Person,
Angajat.
2. Este conexiune relații -între datele pe care cartografiat care beween două noduri. ex. El este
„prieten al“ ei.
3. Proprietăți – nu este altceva decât tag -uri care pot fi atașate la ambele noduri și rel ații. Acesta
are datele. ex. Nodul persoană poate avea proprietăți, cum ar fi nume, vârstă.
Tendința actuală și utilizarea Neo4j

Neo4j excelează în gestionarea datelor cu relații interesante și la exploatarea relațiilor. Ca
atare, acesta oferă un server robust și domeniu specifice fiecărei limbi (DSL) numit Cypher pe care
le utilizați pentru a crea, actualiza, interogare, explora & descoperi noi date și relații. Cypher este
ceva de genul SQL, dar concepute pentru a gestiona grafic datele.
Nodurile și marginile cu atribute sunt esențiale pentru Neo4J, mai degrabă decât tabelele cu
chei relaționale. Datele sunt modelate ca Nodurile sau Muchii fiecare cu proprietăți și etichete care
formează un grafic. Prin urmare, Neo4J este clasificată ca o bază de date Graph. Acesta este
conceput pentru a gestiona grafic datele într -un mod tranzacțional ACID compatibil.
Este utilizată de obicei atunci când aveți o mulțime de relații care nu sunt statice și doriți să puneți
întrebări care exploatează modul în care lucrur ile se conectează unele cu altele, mai degrabă decât
doar uita în sus bazat pe o cheie / valoare. De exemplu: arata toate meciurile data posibilă pe baza

25
unui set de preferințe și care cunoaște o persoană comună pe care o putem apropia de a face o
introduc ere. – Neo4j poate returna acest rezultat ca o masă sau ca subgrafic. Deschide o mulțime de
aplicații noi.

26
Concluzii

NoSQL este un sistem de management al bazelor de date care nu oferă garanții ACID, este
însă rapid, portabil fără alte limite decât memoria și viteza procesorului ce rulează și interacționează
cu SO UNIX. Folosește paradigma operator flux. Există un număr de operatori și fiecare execută o
funcție unică asupra datelor .
Daca se lucreaza cu o cantitate mare de date și se dorește ru larea de interogări dinamice ad –
hoc, se va folosi o baza de date relațională SQL. Folosirea cheie -valoare nu are sens decât dacă se
dorește distribuirea muncii pe diferite mașini fără a trece prin crearea unui cluster de baze de date .
Dacă se doreste past rarea obiectelor într -o stare persistenta și se doreste un acces de
performanță ridicată la ele se va folosi o stocare cheie valoare. Existã un numãr mare de sisteme
NoSQL disponibile astãzi cum ar fi: Cassandra, Chordless, CouchDB, DB4O, GTM, Hbase,
Hiper Table, Memcachedb, Mnesia, MongoDB, Neo4J, Project_Voldemort, Redis_(DBMS). Dintre
acestea HBase și Cassandra se remarcă în mod deosebit. Diferențele dintre aceste două proiecte se
pot măsura în facilitățile oferite și arhitectură. Hbase este o clonă aprop iată a lui BigTable de la
Google iar Cassandra este un hibrid între BigTable și Dynamo .

27

Bibliografie

1. Marin Fotache, SQL Dialecte DB2, Oracle și Visual FoxPro, POLIROM, 2001, pagina 21
2. Marian Panțiru, Ionuț Panțiru, Baze de date, varianta FocPro 2.x pentru Windws, L&S
INFORMAT, pagina 15,16
3. Octavian Bâscă, Baze de date, ALL
4. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de date, Proiectare, Implementare,
Gestionare, traducere: Simona și Titi Preda, Teora 2001
5. Corina Pascu, Adrian Pascu, Totul desp re… SQL, Integrarea bazelor de date, Editura Tehnică
6. Revista Română de Informatică și Automatică, vol. 22, nr. 4, 2012
7. http://www2.unitbv.ro/LinkCli ck.aspx?fileticket=8Gsfz0SfMt0%3D&tabid=4146&language
=en-US
8. http://vega.unitbv.ro/~cataron/Courses/BD/BD_Cap_5.pdf
9. http://www.rusu.coneural.org/teaching/MLR5027/2014.BD.Curs.14.pdf
10. http://mihaistefanescu1.blogspot.ro/p/nosql.html
11. https://rria.ici.ro/wp -content/uploads/2012/12/06 -art.-Ularu -si-Puican -revizuit.pdf
12. http://andrei.clubcisco.ro/cursuri/f/f -sym/3bd/14.%20Baze%20de%20date%20non%20SQL.pdf
13. http://docshare01.docshare.tips/files/20977/209775862.pdf
14. http://www.elth.pub.ro/~preda/teaching/SPABD/SPABD_10.pdf
15. http://docs.aws. amazon.com
16. https://cloud.google.com/bigtable/
17. https://www.cs.rutgers.edu/~pxk/417/notes/content/bigtable.html
18. https://www.quora.com/What -is-Neo4j

Similar Posts