Ce este MongoDB? Introducere, Arhitectură, Caracteristici & Exemplu

Cuprins:

Anonim

Ce este MongoDB?

MongoDB este o bază de date NoSQL orientată spre documente utilizată pentru stocarea volumului de date. În loc să folosească tabele și rânduri ca în bazele de date relaționale tradiționale, MongoDB folosește colecții și documente. Documentele constau din perechi cheie-valoare, care reprezintă unitatea de bază a datelor din 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 ieșit la lumină la mijlocul anilor 2000.

În acest tutorial, veți învăța-

  • Caracteristici MongoDB
  • Exemplu MongoDB
  • Componentele cheie ale arhitecturii MongoDB
  • De ce să utilizați MongoDB
  • Modelarea datelor în MongoDB
  • Diferența dintre MongoDB și RDBMS

Caracteristici MongoDB

    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 între ele.
    2. Structura documentului este mai mult î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 apelate î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țiile ierarhice, să stocați tablouri și alte structuri mai complexe.
  1. Scalabilitate - Mediile MongoDB 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

Exemplu MongoDB

Exemplul de mai jos arată cum poate fi modelat un document în 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-ul comenzii, produsul și cantitatea) care în RDBMS vor fi stocate în mod normal într-un tabel separat, în timp ce în MongoDB sunt stocate de fapt ca un document încorporat în colecția în sine. Aceasta este una dintre diferențele cheie în modul în care datele sunt modelate în MongoDB.

Componentele cheie ale arhitecturii MongoDB

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

  1. _id - Acesta este un câmp necesar în fiecare document MongoDB. Câmpul _id reprezintă o valoare unică în documentul MongoDB. Câmpul _id este ca cheia principală a documentului. Dacă creați un document nou fără un câmp _id, MongoDB va crea automat câmpul. De exemplu, dacă vedem exemplul tabelului de mai sus pentru clienți, Mongo DB va adăuga un identificator unic de 24 de cifre la fiecare 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. Colecție - Aceasta este o grupare de documente MongoDB. 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 colecțiile de introducere, nu aplică niciun fel de structură.
  2. Cursor - Acesta este un indicator 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 tabele. Fiecare bază de date primește propriul set de fișiere din sistemul de fișiere. Un server MongoDB poate stoca mai multe baze de date.
  4. Document - O înregistrare dintr-o colecție MongoDB se numește practic document. Documentul, la rândul său, va consta din nume de câmp și valori.
  5. Câmp - O pereche nume-valoare dintr-un document. Un document are zero sau mai multe câmpuri. Câmpurile sunt similare coloanelor din bazele de date relaționale.

    Următoarea diagramă prezintă un exemplu de câmpuri cu perechi de valori cheie. Deci, în exemplul de mai jos CustomerID și 11 este una dintre perechile de valori cheie definite în document.

  1. JSON - Aceasta este cunoscută sub numele de JavaScript Object Notation. 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 normal de colectare. Câmpul _id este utilizat pentru a identifica în mod unic documentele dintr-o colecție și este adăugat automat de MongoDB atunci când colecția este creată.

De ce să folosiți MongoDB?

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

  1. Orientat spre documente - Deoarece MongoDB este o bază de date de tip NoSQL, în loc să aibă date într-un format de tip relațional, stochează datele în documente. Acest lucru face ca MongoDB să fie foarte flexibil și adaptabil la situația și cerințele reale ale afacerilor.
  2. Interogări ad hoc - MongoDB acceptă căutarea după câmp, interogări de gamă și căutări de expresie regulată. Se pot face interogări pentru a returna câmpuri specifice din documente.
  3. Indexare - Se pot crea indexuri pentru a îmbunătăți performanța căutărilor în MongoDB. Orice câmp dintr-un document MongoDB poate fi indexat.
  4. Replicare - MongoDB poate oferi o disponibilitate ridicată cu seturi de replici. Un set de replici constă din două sau mai multe instanțe de mongo DB. Fiecare membru al setului de replici poate acționa în orice moment în rolul replicii primare sau secundare. Replica principală este serverul principal care interacționează cu clientul și efectuează toate operațiile de citire / scriere. Replicile secundare păstrează o copie a datelor primare utilizând replicarea încorporată. Când o replică primară eșuează, setul de replici trece automat la secundar și apoi devine serverul principal.
  5. Echilibrarea încărcării - MongoDB utilizează conceptul de sharding pentru a scala pe orizontală prin împărțirea datelor pe mai multe instanțe MongoDB. MongoDB poate rula pe mai multe servere, echilibrând încărcarea și / sau duplicând date pentru a menține sistemul în funcțiune și în caz de defecțiune hardware.

Modelarea datelor în MongoDB

După cum am văzut din secțiunea Introducere, datele din MongoDB au o schemă flexibilă. Spre deosebire de bazele de date SQL, unde trebuie să aveți declarată schema unui tabel înainte de a insera date, colecțiile MongoDB nu impun structura documentului. Acest tip de flexibilitate este ceea ce face MongoDB atât 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 această bază, asigurați-vă că structura documentului este decisă în consecință.
  2. Ce sunt tiparele de recuperare a datelor - Dacă prevedeți o utilizare intensă a interogărilor, luați în considerare utilizarea indexurilor în modelul dvs. de date pentru a îmbunătăți eficiența interogărilor.
  3. Sunt inserții, actualizări și eliminări frecvente în baza de date? Reconsiderați utilizarea indexurilor sau încorporați sharding, dacă este necesar, în proiectarea modelării datelor pentru a îmbunătăți eficiența mediului dvs. general MongoDB.

Diferența dintre MongoDB și RDBMS

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

RDBMS MongoDB Diferență
Masa Colectie În RDBMS, tabelul conține coloanele și rândurile care sunt utilizate pentru stocarea datelor, în timp ce, în MongoDB, aceeași structură este cunoscută sub numele de colecție. Colecția conține documente care la rândul lor conțin 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 într-un tabel. În MongoDB, datele sunt stocate în documente.
Coloană Camp În RDBMS, coloana denotă un set de valori de date. Acestea din MongoDB sunt cunoscute sub numele de Fields.
Se alătură Documente încorporate În RDBMS, datele sunt uneori împrăștiate în diferite tabele și, pentru a arăta o vizualizare completă a tuturor datelor, uneori se formează o asociere între tabele pentru a obține datele. În MongoDB, datele sunt stocate în mod normal într-o singură colecție, dar separate prin utilizarea documentelor încorporate. Deci, nu există niciun concept de asocieri în MongoDB.

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

  1. Bazele de date relaționale sunt cunoscute pentru consolidarea integrității datelor. Aceasta nu este o cerință explicită în MongoDB.
  2. RDBMS cere ca datele să fie normalizate mai întâi, astfel încât să poată preveni înregistrările și duplicatele orfane. Normalizarea datelor are apoi cerința mai multor 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 normalizate mai întâi.