Documente Academic
Documente Profesional
Documente Cultură
NoSQL
Baze de Date Orientate pe Documente
Ce sunt bazele de date NoSQL?
Bazele de date NoSQL, sau bazele de date „Not only SQL”, sunt un tip de sistem de gestionare
a bazelor de date care oferă un mecanism de stocare și regăsire a datelor care sunt modelate
în alte moduri decât relațiile tabulare utilizate în bazele de date relaționale (cum ar fi bazele de
date SQL). Bazele de date NoSQL sunt concepute pentru a gestiona volume mari de date
nestructurate, semistructurate sau structurate și oferă modele de date flexibile pentru diferite
tipuri de date.
NoSQL: Caracteristici Principale
● Design fără schemă: spre deosebire de bazele de date relaționale, bazele de date NoSQL
sunt adesea fără schemă, ceea ce înseamnă că se pot stoca date fără a defini mai întâi
structura.
● Scalabilitate orizontală: bazele de date NoSQL sunt, în general, concepute pentru a scala
orizontal, în contrast cu bazele de date relaționale care scalează vertical prin adăugarea
mai multor resurse la un singur server.
● Suport pentru Big Data: bazele de date NoSQL sunt potrivite pentru a gestiona volume
mari de date, inclusiv tipuri de date nestructurate și semi-structurate, asociate adesea cu
big data.
● Diverse modele de date: bazele de date NoSQL acceptă diverse modele de date: perechi
cheie-valoare, orientate pe documente, columnare și baze de date graf. Această
diversitate permite flexibilitate în alegerea modelului care se potrivește cel mai bine
nevoilor aplicației.
NoSQL: Tipuri
● Orientate pe documente: aceste baze de date stochează date într-un format
semistructurat, utilizând de obicei formate precum JSON sau BSON. Exemplele includ
MongoDB și CouchDB.
● Stocare cheie-valoare: datele sunt stocate ca perechi cheie-valoare, unde fiecare cheie
unică este asociată cu o anumită valoare. Exemplele includ Redis și Amazon DynamoDB.
● Stocare pe coloane: datele sunt stocate mai degrabă în coloane decât în rânduri, ceea ce
le face potrivite pentru taskuri analitice. Exemplele includ Apache Cassandra și HBase.
● Baze de date graf: Aceste baze de date sunt concepute pentru date ale căror relații sunt
bine reprezentate sub formă de graf. Exemplele includ Neo4j și Amazon Neptune.
Motivarea NoSQL
Bazele de date relaționale tradiționale vin cu anumite limitări, mai ales în contextul nevoilor
moderne de date care evoluează rapid. Unele dintre limitările cheie includ:
MongoDB: Elasticsearch:
● Design flexibil al schemei ● Căutare full-text și analiză text
● Limbajul de interogare puternic ● Scalabilitate și performanță
● Scalabilitate orizontală ● Analiza datelor în timp real
● Ușurință în utilizare ● Framework de agregare
● Cazuri de utilizare: sisteme de ● Gestionarea datelor de log și
evenimente
management al conținutului, platforme
● Cazuri de utilizare: aplicații centrate pe
de comerț electronic, backend-uri
căutare, inclusiv căutare în comerț
pentru aplicații mobile, analize în timp
electronic, descoperire de conținut și
real
căutare enterprise
MongoDB
source: mongodb.com
Documente
O decizie importantă în proiectarea modelelor de date este structura documentelor și modul în
care aplicația reprezintă relațiile dintre date. Există 2 moduri de a reprezenta aceste relații:
● referințe: stochează relațiile dintre date prin includerea de legături sau referințe de la un
document la altul
● documente imbricate: stocarea datelor aferente într-o singură structură de document.
Documentele MongoDB fac posibilă încorporarea structurilor documentelor într-un câmp
sau un vector în cadrul unui document
Documente
Datele sunt stocate în documente: structuri de date în stil JSON compuse din perechi cheie și
valoare.
Pe disc, documentele sunt stocate în formatul de serializare BSON. BSON este o
reprezentare binară a documentelor JSON, deși conține mai multe tipuri de date decât JSON
Documente
source: mongodb.com
Relații
1 la 1 cu imbricare
Relații
1 la N cu imbricare
Relații
1 la N cu referințe
Relații
1 la N cu referințe
Interogări - Read
Interogările în MongoDB se realizează utilizând limbajul de interogare MongoDB (MQL) și
implică specificarea condițiilor pentru a prelua documente din colecții pe baza anumitor criterii.
MongoDB oferă un set bogat de operatori de interogare și metode pentru filtrarea, sortarea și
proiecția datelor.
Operațiile de citire includ toate operațiunile care returnează un cursor ca răspuns la interogări
și, suplimentar, includ o serie de operațiuni de agregare care nu returnează un cursor, dar au
proprietăți similare cu interogările. Aceste comenzi includ aggregate, count și distinct.
În shell-ul mongo există metodele find() și findOne() ce sunt utilizate pentru operații de
citire.
Interogări - Read
Interogări - Read
Interogări - Write
Operațiile de scriere sunt atomice (la nivel de document);
O operație de scriere poate afecta atomic un singur document și o singură colecție.
Operațiile care modifică mai mult de un singur document dintr-o colecție acționează doar pe
un document la un moment dat.
Un model de date denormalizate cu date imbricate facilitează operațiunile de scriere atomică,
deoarece o singură operație de scriere poate insera sau actualiza datele pentru o entitate.
Într-un model normalizat, datele ar fi împărțite în mai multe colecții și ar necesita mai multe
operații de scriere care nu sunt atomice colectiv.
Interogări - Write
● Insert: adăugare de date noi
într-o colecție