Bazele de date NoSQL s-au
dezvoltat alături de companii de internet, cum ar fi Google, Amazon si
Facebook. In cazul acestor companii, care trateaza cantităţi imense de date, solutiile traditionale RDBMS nu au
putut face fata. Sistemele de baze de date NoSQL au fost dezvoltate pentru a
gestiona volume mari de date care nu urmează neapărat o schemă fixă. Datele
sunt împărţite între diverse masini (din motive de performanţă şi limitări de
spatiu), operatiile de JOIN nu pot fi utilizate, si nici nu exista garantii
ACID (Atomicitate - fiecare tranzactie va fi "totul sau nimic", in sensul in care esecul unei parti a unei tranzactii conduce la esecul intreagii tranzactii, deci la numodificarea bazei de date, Consistenta - orice tranzactie va determina trecerea bazei de date dintr-o stare consistenta, valida in raport cu regulile definite (triggere, constrangeri, etc) intr-o alta stare tot consistenta, Izolare - executia concurenta a tranzactiilor va determina trecerea intr-o stare care poate fi obtinuta si prin executia secventiala a tranzactiilor respective, Durabilitate - tranzactiile finalizate (pentru care s-a dat commit) vor ramane asa si in cazul aparitiei unor probleme hard sau soft), care in cazul
RDBMS-urilor garanteaza procesarea in siguranta a tranzactiilor.
Principalele
caracteristici ale sistemelor NoSQL sunt:
- Nu folosesc SQL ca limbaj de interogare;
- Nu ofere garantii ACID complete: De obicei, eventual, numai coerenta este garantată pentru tranzacţiile limitate la un singur element de date. Acest lucru înseamnă că, dupa o perioadă suficient de lungă de timp în care nu au fost trimise modificările, toate update-urile (actualizarile) se vor propaga în cele din urmă prin intermediul sistemului;
- Arhitectura distribuita, toleranta la defecte.
Sistemele NoSQL folosesc o arhitectura distribuita,
deci datele sunt pastrate într-un mod
redundant, pe mai multe servere. În acest fel, sistemul poate “scala” cu
uşurinţă prin adăugarea de mai multe servere, iar caderea unui server poate fi tolerată. Acest tip de
bază de date de obicei, scaleaza pe orizontală şi este utilizat pentru a
gestiona cantităţi mari de date, atunci când performantele în timp real
sunt mult mai importante decât
consistenţa (ca in cazul indexarii unui număr mare de documente, a paginilor de
pe site-urile webde mare trafic, sau a livrarii stream-urilor media).
Practic, sistemele de gestionare a bazelor de date NoSQL isi dovedesc utilitatea atunci când se lucrează cu o cantitate mare de date, iar natura datelor nu impune un model relaţional pentru structura de date. Datele ar putea fi structurate (relaţiile dintre elemente sunt mai putin importante), insa ceea ce contează in cazul sistemelor NoSQL este capacitatea de a stoca şi de a prelua cantitati mari de date: se pot stoca milioane de perechi cheie-valoare în una sau câteva tablouri asociative sau milioane de înregistrări de date. Acest lucru este deosebit de util pentru analizele statistice sau în timp real pentru liste tot mai mari de elemente (cum ar fi mesaje pe Twitter sau log-urile de pe serverele Internet pentru grupuri mari de utilizatori).
Unele sisteme NoSQL promoveaza interfete foarte simple (tablouri associative sau perechi cheie-valoare). Altele, cum ar fi bazele de date native XML, ofera si posibiltatea de realizare a unor operatii de join, fie prin XQuery, fie prin CloudTPS.
In
functie de modul de inregistrare a datelor, sistemele NoSQL pot fi impartite
in:
- Perechi cheie-valoare (Apache-Cassandra, Dynamo, Hibari, OpenLink Virtuoso, Riak, Apache River, Apache Hadoop, Tarantools, etc.);
- Implementari BigTable (BigTable este un format de memorare proprietar (Google), compresat, de inalta performanta);
- Baze de date orientate-document (BaseX, Clusterpoint, Apache CouchDB, eXist, OrientDB, MavenDB, Simplestore, MongoDB);
- Baze de date graf, in care relatiile sunt bine reprezentate sub forma unui graf (AllegroGraph, DEX, Neo4j, OWLIM).
Overview of NoSQL: Video YouTube
What is NoSQL? Video YouTube
NoSQL Landscape 1/5 - Video YouTube
2/5 - Video YouTube
Mai multe informatii despre NoSQL:
NoSQL, wikipedia: NoSQL
Lith, Adam; Jakob Mattson (2010). Investigating storage solutions for large data (PDF). Göteborg: Department of Computer Science and Engineering, Chalmers University of Technology. p. 70. Retrieved 12 May 2011.
"Carlo Strozzi first used the term NoSQL in 1998 as a name for his open
source relational database that did not offer a SQL interface[...]"
Baze de date NoSQL: BD NoSQL
Baze de date NoSQL: BD NoSQL
Niciun comentariu:
Trimiteți un comentariu