Bazele de date relaționale au fost soluția preferată pentru gestionarea datelor timp de zeci de ani. Cu toate acestea, volumul și diversitatea crescândă a datelor, caracteristice aplicațiilor web moderne, au făcut ca bazele de date orientate către documente, precum Mongo DB, să devină un concurent serios. Vom explica ce este abordarea orientată către documente și avantajele pe care le oferă acest model de gestionare a datelor.

În ce se deosebește MongoDB de alte baze de date?

În bazele de date relaționale tradiționale, datele sunt stocate într-un tabel structurat. MongoDB, al cărui nume provine de la cuvântul „humongous” (imens), este un sistem de baze de date orientat către documente. În MongoDB, datele sunt grupate într-o manieră nestructurată în ceea ce programul bazei de date numește colecții.

O altă diferență esențială este că MongoDB nu utilizează SQL ca limbaj de interogare și, prin urmare, este clasificat ca sistem de baze de date NoSQL. În schimb, MongoDB utilizează limbajul de interogare MongoDB Query Language (MQL) bazat pe JavaScript ca limbaj de interogare. În consecință, înregistrările MongoDB sunt stocate în formatul BSON, care este modelat după JSON. Acest lucru înseamnă că toate tipurile de date JavaScript sunt acceptate, motiv pentru care MongoDB a devenit alegerea ideală pentru multe platforme bazate pe JavaScript.

O altă caracteristică a bazelor de date MongoDB este capacitatea lor de scalare orizontală. Aceasta înseamnă că datele dintr-o bază de date pot fi distribuite pe mai multe servere, în loc să fie stocate într-o singură locație centrală. Această abordare permite o disponibilitate sporită a datelor și îmbunătățește performanța generală a bazei de date. Scalarea orizontală este adesea mai rentabilă decât actualizarea unui singur server cu hardware mai puternic (scalare verticală).

Cum funcționează MongoDB?

Spre deosebire de MySQL, MongoDB are o abordare complet diferită în ceea ce privește stocarea datelor și funcționează într-un mod orientat către documente. În loc să stocheze datele într-un format tabelar, în care fiecare rând are același număr de câmpuri care trebuie completate cu valori, bazele de date MongoDB stochează datele în documente BSON care nu au o structură predefinită. Numărul de câmpuri poate varia de la un document la altul, iar câmpurile nu trebuie să fie consecvente între ele. Documentele îndeplinesc un rol similar cu cel al rândurilor dintr-un tabel SQL, în timp ce câmpurile care au fost definite în aceste documente servesc ca coloane.

Există multe instrumente pe care le puteți utiliza atunci când lucrați cu bazele de date MongoDB. Pe lângă Shell-ul MongoDB de încredere, puteți utiliza și GUI MongoDB Compass pentru a gestiona bazele de date MongoDB. În acest articol, însă, ne vom concentra pe comenzile Shell.

Deoarece MQL se bazează pe JavaScript, există deja o varietate de funcții predefinite pe care le puteți utiliza pentru interogări și comenzi complexe. În cea mai mare parte, toate comenzile de scriere și citire au aceeași structură ca și comenzile prezentate în exemplul de mai jos. În plus față de aceste comenzi, există numeroase alte comenzi pe care le puteți utiliza pentru a gestiona baza de date MongoDB. Acestea sunt documentate pe larg și explicate în detaliu în documentația pentru MongoDB.

> db.students.find(Name : "Charlie")
> db.students.updateOne(Name : "Charlie", Semester : 2)
> db.students.deleteOne(Name : "Peter")
> db.students.insertOne({
Name : "Elsie"
Age : 18
Semester : 1
})

În exemplul de mai sus, există o serie de comenzi ale bazei de date MongoDB, care sunt toate structurate în același mod. Mai întâi, există „db”, care se referă la baza de date în ansamblul său, apoi „students”, care se referă la o colecție specifică, unde trebuie efectuate operațiunile corespunzătoare. După colecție urmează metoda (find, update, remove, insert) care trebuie utilizată.

Puteți utiliza metoda find() pentru a căuta un document specific. Dacă lăsați câmpul parametrului gol, vor fi returnate toate documentele din colecția pe care ați selectat-o. În exemplul de mai sus, MongoDB caută toate documentele în care câmpul „Name” are valoarea „Charlie”.

Metoda updateOne() poate fi utilizată pentru a suprascrie valorile dintr-un document. Metoda update() acceptă două argumente. Primul argument este criteriul de selecție, iar al doilea este perechea cheie-valoare care urmează să fie suprascrisă. În exemplu, sunt selectați toți studenții numiți „Charlie”. Valoarea „2” este apoi introdusă în câmpul „Semestru” pentru studenții numiți Charlie.

Metoda deleteOne() acceptă un singur argument. Acesta este criteriul de selecție care determină documentele care trebuie eliminate din baza de date. În acest caz, toți studenții cu numele Peter sunt eliminați din baza de date.

Metoda insertOne() acceptă, de asemenea, un argument. În cazul acestei metode, argumentul este conținutul JSON al documentului pe care doriți să îl adăugați. Atunci când inserați documente, este esențial să vă asigurați că fiecare document din colecția MongoDB are un număr hexazecimal unic de 12 octeți. Acest număr servește ca ID-ul obiectului documentului. Dacă acesta nu este specificat la inserarea documentului, MongoDB va genera automat un ID pentru document.

Care sunt avantajele MongoDB?

Structura MongoDB oferă utilizatorilor mai multe avantaje, în special în ceea ce privește flexibilitatea și scalabilitatea. Un avantaj cheie al stocării datelor bazate pe documente este că, spre deosebire de bazele de date relaționale, nu toate intrările trebuie să aibă aceleași atribute. Acest lucru permite stocarea datelor nestructurate și semi-structurate. În plus, documentele individuale pot fi restructurate (de exemplu, prin adăugarea sau ștergerea unui atribut/câmp) fără a fi necesară restructurarea altor documente din aceeași colecție. Deoarece documentele din MongoDB sunt stocate în format BSON, bazele de date MongoDB oferă, de asemenea, un grad ridicat de compatibilitate cu multe platforme JavaScript utilizate în mod obișnuit.

Pe lângă stocarea datelor nestructurate, MongoDB oferă și un grad ridicat de scalabilitate orizontală, fără a încălca principiile ACID (atomicitate, consistență, izolare, durabilitate). În bazele de date distribuite, asigurarea consistenței poate fi adesea o provocare, deoarece datele sunt stocate pe servere diferite. Atunci când se efectuează modificări simultane la mai multe documente, aceste modificări pot să nu fie distribuite imediat către toate serverele utilizate de sistemul de baze de date. Dacă există un volum mare de interogări, acest lucru poate duce uneori la date inconsistente. Cu toate acestea, odată cu lansarea MongoDB 4.2 în 2019, este acum posibil să se efectueze modificări la mai multe documente pe servere diferite, fără a sacrifica consistența sau disponibilitatea.

Sfat

Aveți nevoie de o bază de date orientată spre documente, care să se adapteze cerințelor aplicației dvs. web? MongoDB este soluția perfectă!

Pentru ce poate fi utilizat MongoDB?

MongoDB este o alegere excelentă pentru proiectele web care se bazează pe seturi de date nestructurate extrem de mari. Lucrul cu un sistem bazat pe documente care nu are o schemă fixă este ideal pentru gestionarea unei game largi de tipuri de date care necesită stocare și procesare rapidă.

Sistemul de baze de date permite, de asemenea, o scalabilitate orizontală, aproape nelimitată, deoarece bazele de date pot fi distribuite fără efort pe mai multe servere, fără a compromite funcționalitatea. Mai mult, cu MongoDB, puteți crea cu ușurință copii ale bazei de date și le puteți pune la dispoziția diverselor servere, asigurând securitatea și disponibilitatea pe termen lung a datelor dvs. Programul de baze de date orientat către documente afișează, de asemenea, capacități impresionante în ceea ce privește agregarea datelor, fie că provin dintr-o singură sursă sau din mai multe surse.

MongoDB este ideal pentru proiectele web care prezintă următoarele caracteristici:

  • Scalabilitate: pe măsură ce proiectul dvs. web crește, numărul de solicitări crește de obicei, ceea ce duce la cerințe mai mari pentru baza de date.
  • Disponibilitate: aveți nevoie de accesibilitate neîntreruptă pentru aplicația dvs. web, chiar și în cazul unei defecțiuni a serverului.
  • Flexibilitate: proiectul dvs. ar trebui să permită adaptarea dinamică în orice moment.

Nu sunteți sigur care model de bază de date este cel potrivit pentru proiectul dvs. web? Nu-i nimic, pentru că nu trebuie să alegeți doar unul. Este posibil să combinați diferite tipuri de modele de baze de date, iar alegerea mai multor modele poate fi cea mai potrivită opțiune pentru cerințele proiectului dvs.

Mergi la meniul principal