Cuprins
- 1. Introducere 3
- 2. Terminologie 3
- 3. Categorii de depozite de date NoSQL 4
- 3.1. Baze de date orientate pe cheie-valoare 4
- 3.1.1. Project Voldermort 4
- 3.1.2. Riak 4
- 3.2. Baze de date orientate pe document 5
- Sistemele care folosesc modelul orientat pe document suportă date mult mai complexe decât cele anterioare(orientate pe cheie-valoare). Acest tip de sistem suportă în general indesci secundari și multe tipuri de documente (obiecte) care pot fi stocate în bază, însă nu îndeplinesc proprietățile tranzacționale ACID. 5
- 3.2.1. SimpleDB 5 3.3.3. CouchDB 5
- 3.3. Baze de date orientate pe coloane 5
- 3.3.1. HyperTable 6
- 3.3.2. Cassandra 6
- 4. Studiu de caz: MongoDB 7
- 4.1. Paralelă între baze de date SQL şi NoSQL: 7
- 4.2. Caracteristicile MongoDB: 7
- 4.3. Instalarea 10
- 5. Concluzii 11
- 6. BIBLIOGRAFIE: 12
Extras din referat
În acesta lucrare se analizează așa numitele depozite de date „NoSQL” care au fost proiectate să scaleze aplicațiile de tipul OLTP 1 distribuite pe un număr mare de servere. Prin motivarea apariției aplicațiilor de tip Web 2.0, sisteme de date „NoSQL” au fost concepute pentru scalarea milioanelor de utilizatori care citesc date din bază de date și fac actualizări asupra acestora în mod frecvent, lucru ce apare în contrast cu sistemele de gestiune de baze de date tradiționale și cu data warehouses. Pe parcursul lucrării vor fi prezentate noile sisteme de împreună cu modele lor de date, consistența mecanismelor, mecanismele de stocare, garanțiile durabilității, disponibilitatea datelor, modul de interogare a datelor precum și alte concepte. Aceste sisteme sacrifică în mod evident undele dintre conceptele enumerate mai sus, cum ar fi consistența tranzacțiilor pentru a realiza altele pe care își îndreaptă mai mult atenția cum este disponibilitatea și scabilitatea mare a datelor.
1 OLTP = Online Transaction Processing
1. Introducere
Există în prezent mai multe tipuri de sisteme de gestiune a datelor diferite de cele relaţionale care se deosebesc de acestea prin anumite caracteristici cum ar fi mecanismul de stocare şi de extragere a datelor. Un exemplu de un sistem de gestiune a informaţiilor diferit de cel clasic este baza de date NoSQL. Arhitectura acestei baze de date nu este asemănătoare de cea folosită în SQL ceea ce face ca anumite operaţii efectuate asupra bazei de date NoSQL să fie mai rapide iar altele mai lente. Aceste tipuri de baze de date sunt utilizate în special pentru stocarea structurilor foarte mari. Bazele de date NoSql permit dezvoltatorilor de aplicaţii web să stocheze date care nu au o schema fixă. Bazele de date NoSQL s-au dezvoltat alături de companii de internet, cum ar fi Google, Amazon şi Facebook. În cazul acestor companii, care tratează cantităţi imense de date, soluţiile tradiţionale RDBMS nu au putut face faţă. 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 maşini (din motive de performanţă şi limitări de spatiu), operaţiile de JOIN nu pot fi utilizate, si nici nu există garanţii ACID (Atomicitate - fiecare tranzacţie va fi "totul sau nimic", în sensul în care apare eşecul unei părţi a unei tranzacţii conduce la eşecul întregii tranzacţii, deci la nu modificarea bazei de date, Consistenţa - orice tranzacţie va determina trecerea bazei de date dintr-o stare consistentă, validă în raport cu regulile definite (triggere, constrangeri, etc) într-o altă stare tot consistentă, Izolare - execuţia concurentă a tranzacţiilor va determina trecerea într-o stare care poate fi obţinută şi prin execuţia secvenţială a tranzacţiilor respective, Durabilitate - tranzacţiile finalizate (pentru care s-a dat commit) vor ramîne aşa şi în cazul apariţiei unor probleme hard sau soft), care în cazul RDBMS-urilor garantează procesarea în siguranţă a tranzacţiilor. NoSQL este un sistem de management a bazelor de date rapid, portabil, fără limite arbitrare, altele decît memoria şi viteza procesorului ce rulează şi interacţionează cu SO UNIX.
Caracteristici baze NoSql:
- Nu sunt relaţionale
- Sunt open-source
- Scalabilitate mare
- Lipsa unei scheme fixe pentru a modela baza de date
- Stocheaza o cantitate mare de date
2. Terminologie
Terminologia folosită pentru modele de date NOSQL este adesea inconsistență. Pentru scopul acestei lucrări ne trebui un mod consistent de a compară modele și funcționalitățile. Toate sisteme stochează perechi de atribute-valori, dar folosind structuri diferite cum sunt:
1. Un „tuplu” reprezintă un rând dintr-o tabela relațională unde atributele sunt predefinite în schema tabelei , valorile atributelor fac referință la numele acestora și sunt valori scalare.
2. Un „document” permite că valorile unui atribut să fie și liste, nu numai valori scalare, iar numele atributelor pot fi modificate în mod dinamic în timpul procesării datelor. Un document diferă de un tuplu prin faptul că atributele nu sunt definite într-o schema globală a bazei de date și există o gamă largă de tipuri de valori care sunt permise.
3. O „inregistrare extensibila” este o punte între un tuplu și un document, unde o parte din atribute sunt definite în schema bazei de date, însă pe parcurs pot fi adăugate și atribute noi Atributele pot fi și o lista de valori, așa cum sunt și la documente.
4. Un „obiect” face analogie la un obiect clasic din limbajele de programare, dar fără metode procedurale. Valorile pot și și referințe sau alte obiecte.
3. Categorii de depozite de date NoSQL
Bazele de date în general sunt grupate în câteva mari categorii conform modelului de date pe care acestea în au.
O clasificare a acestor tipuri de baze de date NO-SQL poate fi următoarea:
- Orientate pe coloane: Druid, Cassandra
- Orientate pe documente: CouchDB, MongoDB
- Orientate pe Cheie - Valoare: HyperDex, Dynamo
- Orientate pe Graph: Allegro, Neoj
- Multi-model: OrientDB, ArangoDB
Bibliografie
- „Noua generaţie de baze de date NoSQL”, Elena Geanina Ularu, Florina Puican, 2012
- Documentație MongoDb https://nosql-databases.org Accesat 2016
- Guy Harrsion(2010) 10 things you should know about NoSQL databases -
- http://www.techrepublic.com/blog/10-things/10-things-you-should-know-about-nosql-databases/ Accesat : 2016
- Documentație MongoDb https://www.mongodb.org/about/introduction/ Accesat:2016
Preview document
Conținut arhivă zip
- Baze de date NoSQL - MongoDB.pdf