Ce Este MongoDB? Introducere, Architectură, caracteristici și exemple

Ce Este MongoDB?

MongoDB este o bază de date NoSQL orientată spre documente, utilizată pentru stocarea datelor cu volum mare. În loc să folosiți tabele și rânduri ca în bazele de date relaționale tradiționale, MongoDB face uz de colecții și documente. Documentele constau din perechi cheie-valoare care reprezintă unitatea de bază a datelor în MongoDB. Colecțiile conțin seturi de documente și funcții, care este echivalentul tabelelor de baze de date relaționale. MongoDB este o bază de date care a apărut la mijlocul anilor 2000.

MongoDB Categorii

  1. Fiecare bază de date conține colecții care la rândul lor conțin documente. Fiecare document poate fi diferit cu un număr diferit de câmpuri. Dimensiunea și conținutul fiecărui document pot fi diferite unele de altele.
  2. Structura documentului este mai în concordanță cu modul în care dezvoltatorii își construiesc clasele și obiectele în limbajele lor de programare respective. Dezvoltatorii vor spune adesea că clasele lor nu sunt rânduri și coloane, ci au o structură clară cu perechi cheie-valoare.
  3. Rândurile (sau documentele așa cum sunt numite în MongoDB) nu trebuie să aibă o schemă definită în prealabil. În schimb, câmpurile pot fi create din mers.
  4. Modelul de date disponibil în cadrul MongoDB vă permite să reprezentați mai ușor relații ierarhice, să stocați matrice și alte structuri mai complexe.
  5. Scalabilitate – The MongoDB mediile sunt foarte scalabile. Companiile din întreaga lume au definit clustere, unele dintre ele rulând peste 100 de noduri cu aproximativ milioane de documente în baza de date

MongoDB Exemplu

Exemplul de mai jos arată cum poate fi modelat un document MongoDB.

  1. Câmpul _id este adăugat de MongoDB pentru a identifica în mod unic documentul din colecție.
  2. Ceea ce puteți observa este că datele comenzii (ID comandă, produs și cantitate) care în RDBMS vor fi în mod normal stocate într-un tabel separat, în timp ce în MongoDB este de fapt stocat ca document încorporat în colecția în sine. Aceasta este una dintre diferențele cheie în modul în care sunt modelate datele MongoDB.

MongoDB Exemplu

Componentele cheie ale MongoDB Architectură

Mai jos sunt câțiva dintre termenii obișnuiți utilizați în MongoDB

  1. _id – Acesta este un câmp obligatoriu în fiecare MongoDB document. Câmpul _id reprezintă o valoare unică în MongoDB document. Câmpul _id este ca cheia primară a documentului. Dacă creați un document nou fără un câmp _id, MongoDB va crea automat câmpul. Deci, de exemplu, dacă vedem exemplul tabelului clienți de mai sus, Mongo DB va adăuga un identificator unic de 24 de cifre fiecărui document din colecție.
_Id Număr de înregistrare client Numele clientului Comanda ID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Colectie – Aceasta este o grupare de MongoDB documente. O colecție este echivalentul unui tabel care este creat în orice alt RDMS, cum ar fi Oracle sau MS SQL. O colecție există într-o singură bază de date. După cum se vede din introducere, colecțiile nu impun niciun fel de structură.
  2. cursor – Acesta este un pointer către setul de rezultate al unei interogări. Clienții pot itera printr-un cursor pentru a prelua rezultatele.
  3. Baza de date – Acesta este un container pentru colecții ca în RDMS, în care este un container pentru mese. Fiecare bază de date primește propriul set de fișiere pe sistemul de fișiere. A MongoDB serverul poate stoca mai multe baze de date.
  4. Document – O înregistrare în a MongoDB colecția se numește practic un document. Documentul, la rândul său, va consta din numele câmpului și valori.
  5. Câmp – O pereche nume-valoare într-un document. Un document are zero sau mai multe câmpuri. Câmpurile sunt analoge cu coloanele din bazele de date relaționale. Următoarea diagramă prezintă un exemplu de Câmpuri cu perechi valori cheie. Deci, în exemplul de mai jos, CustomerID și 11 este una dintre perechile valori-cheie definite în document.

Componentele cheie ale MongoDB Architectură

  1. JSON – Aceasta este cunoscută ca JavaScenariu Notarea obiectului. Acesta este un format de text simplu, care poate fi citit de om, pentru exprimarea datelor structurate. JSON este acceptat în prezent în multe limbaje de programare.

Doar o notă rapidă despre diferența cheie dintre câmpul _id și un câmp de colecție normal. Câmpul _id este utilizat pentru a identifica în mod unic documentele dintr-o colecție și este adăugat automat de MongoDB când se creează colecția.

De ce folosiți MongoDB?

Mai jos sunt câteva dintre motivele pentru care ar trebui să începeți să utilizați MongoDB

  1. Orientat pe documente – Din moment ce MongoDB este NoSQL baza de date de tip, în loc să aibă date într-un format de tip relațional, stochează datele în documente. Asta face MongoDB foarte flexibil și adaptabil la situația și cerințele din lumea afacerilor reale.
  2. Interogări ad-hoc – MongoDB acceptă căutarea după câmp, interogări de interval și căutări cu expresii regulate. Se pot face interogări pentru a returna câmpuri specifice din documente.
  3. Indexare – Indexurile pot fi create pentru a îmbunătăți performanța căutărilor în interior MongoDB. Orice câmp din a MongoDB documentul poate fi indexat.
  4. Replicare - MongoDB poate oferi disponibilitate ridicată cu seturi de replici. Un set de replică constă din două sau mai multe instanțe mongo DB. Fiecare membru al setului de replici poate acționa în rolul de replica primară sau secundară în orice moment. Replica primară este serverul principal care interacționează cu clientul și efectuează toate operațiunile de citire/scriere. Replicile secundare mențin o copie a datelor din primar folosind replicarea încorporată. Când o replică primară eșuează, setul de replică trece automat la secundar și apoi devine serverul principal.
  5. Echilibrarea sarcinii - MongoDB folosește conceptul de sharding pentru a scala orizontal prin împărțirea datelor în mai multe MongoDB instanțe. MongoDB poate rula pe mai multe servere, echilibrând încărcarea și/sau dublând datele pentru a menține sistemul în funcțiune în caz de defecțiune hardware.

Modelarea datelor în MongoDB

După cum am văzut din secțiunea Introducere, datele în MongoDB are o schemă flexibilă. Spre deosebire de in SQL baze de date, în care trebuie să aveți o schemă a tabelului declarată înainte de a introduce date, MongoDBcolecțiile lui nu impun structura documentului. Acest tip de flexibilitate este ceea ce face MongoDB atat de puternic.

Când modelați date în Mongo, țineți cont de următoarele lucruri

  1. Care sunt nevoile aplicației – Uitați-vă la nevoile de afaceri ale aplicației și vedeți ce date și tipul de date necesare pentru aplicație. Pe baza acestui lucru, asigurați-vă că structura documentului este decisă în consecință.
  2. Ce sunt modelele de regăsire a datelor – Dacă prevedeți o utilizare intensă a interogărilor, luați în considerare utilizarea indicilor în modelul dvs. de date pentru a îmbunătăți eficiența interogărilor.
  3. Au loc inserări, actualizări și eliminări frecvente în baza de date? Reconsiderați utilizarea indicilor sau includeți sharding-ul dacă este necesar în proiectarea modelării datelor pentru a îmbunătăți eficiența generală. MongoDB mediu. (envrironment)

Diferență între MongoDB și RDBMS

Mai jos sunt câteva dintre diferențele cheie dintre termenii MongoDB și RDBMS

RDBMS MongoDB Diferenţă
Tabel Colectie In RDBMS, tabelul conține coloanele și rândurile care sunt folosite pentru a stoca datele, în timp ce, în MongoDB, aceeași structură este cunoscută ca o colecție. Colecția conține documente care la rândul lor conține Câmpuri, care la rândul lor sunt perechi cheie-valoare.
Rând Document În RDBMS, rândul reprezintă un singur element de date structurat implicit dintr-un tabel. În MongoDB, datele sunt stocate în documente.
Coloană Câmp În RDBMS, coloana denotă un set de valori de date. Acestea in MongoDB sunt cunoscute sub numele de Câmpuri.
Se alătură Documente încorporate În RDBMS, datele sunt uneori răspândite în diferite tabele și pentru a afișa o vedere completă a tuturor datelor, uneori se formează o îmbinare între tabele pentru a obține datele. În MongoDB, datele sunt în mod normal stocate într-o singură colecție, dar separate prin utilizarea documentelor încorporate. Deci nu există conceptul de alăturare MongoDB.

În afară de diferențele de termeni, mai jos sunt prezentate alte câteva diferențe

  1. Bazele de date relaționale sunt cunoscute pentru aplicarea integrității datelor. Aceasta nu este o cerință explicită în MongoDB.
  2. RDBMS necesită ca datele să fie normalizat mai întâi, astfel încât să poată preveni înregistrările orfane și duplicatele. Normalizarea datelor, apoi necesită mai multe tabele, ceea ce va avea ca rezultat mai multe îmbinări de tabele, necesitând astfel mai multe chei și indici. Pe măsură ce bazele de date încep să crească, performanța poate începe să devină o problemă. Din nou, aceasta nu este o cerință explicită în MongoDB. MongoDB este flexibil și nu are nevoie ca datele să fie mai întâi normalizate.

Rezumați această postare cu: