Modelarea datelor este procesul de dezvoltare a unei reprezentări vizuale a unei întregi aplicații software sau a componentelor acesteia pentru a comunica conexiunile dintre punctele de date și structură. Aceasta implică revizuirea meticuloasă a cerințelor sale de aplicații și baze de date și ca conexiune între cele două referitoare la operațiunile de bază ale datelor - citire, scriere și actualizare.

Un model de date stabil este creat prin evaluarea tiparului de utilizare a aplicației și alinierea schemei bazei de date cu aceasta. Prin urmare, proiectarea schemei modelează modelul dvs. de date. Când vine vorba de o bază de date relațională, nu puteți completa tabelele fără a crea schema tabelelor.

Termeni cheie de știut

Înainte de a merge mai departe, iată câteva definiții de bază pe care trebuie să le cunoașteți:

  • Colectie - O colecție este setul de documente din MongoDB. Este echivalentul unui tabel într-un RDBMS.
  • Document - Un document este o structură formată din perechi de fișiere și valori. Este echivalentul unui rând din RDBMS.
  • instagram viewer
  • Schema bazei de date - Proiectarea schemelor este o arhitectură logică și vizuală a unei baze de date concepute pentru un sistem de gestionare a bazelor de date (SGBD).

În ce mod diferă modelarea datelor în MongoDB?

Datorită flexibilității NoSQL, nu trebuie să creați o schemă înainte de inserarea datelor. Acest lucru se datorează faptului că MongoDB acceptă o formă dinamică de schemă de baze de date. Acest lucru elimină necesitatea de a vă proiecta schema în avans. În schimb, puteți acum să stocați datele și să efectuați ajustări în funcție de colecția dvs.

Puteți stoca diferite tipuri de date în câmpul dat al unei colecții și puteți chiar să adăugați câmpuri noi, să actualizați valorile câmpurilor și să ștergeți câmpurile existente. Veți găsi adevăratul beneficiu al acestei flexibilități atunci când asociați documentele la un obiect sau entitate.

În general, o colecție și documentul acesteia urmează o structură similară. De asemenea, puteți „aplica” regulile de validare pentru documentele colecției dvs. utilizând validarea schemei.

Legate de: Motoare de baze de date de luat în considerare pentru următorul dvs. proiect

Când creați un model de date, analizați modul în care aplicația dvs. va interacționa cu baza de date. De exemplu, dacă urmează să proceseze documente care au fost inserate recent, atunci este o idee bună să utilizați colecții cu limită maximă - colecții cu o dimensiune fixă ​​care să susțină operațiuni cu randament ridicat.

În mod similar, dacă aplicația dvs. va funcționa cu operații de citire de cele mai multe ori, puteți seta indexuri pentru a susține interogări obișnuite și pentru a spori performanța.

În mod tradițional, una dintre considerațiile în crearea unui model de date este modul de stocare a datelor conexe. Bazele de date relaționale folosesc tabele pentru a stoca date, unde cheile primare și străine sunt utilizate pentru a stabili relații de date.

În mod similar, asocierile sunt utilizate pentru a accesa și rula operațiuni pe mai multe tabele. Ca cineva care a trecut la MongoDB dintr-un SGBD relațional, cum ar fi SQL Server, nu veți găsi aderări în MongoDB. Acest lucru se datorează faptului că MongoDB stochează date de colectare fie făcând referire la date, fie încorporând datele într-o colecție.

Prin urmare, dacă modelul dvs. de date ia zece tabele într-o bază de date relațională, este posibil ca MongoDB să vă consolideze într-o singură colecție.

Tipuri de modele de date

Acum, că știți cum funcționează modelarea datelor în MongoDB, să trecem prin tipurile de modele de date acceptate de MongoDB. De obicei, depinde de structura documentului și de relațiile de date ale aplicației.

Modele de date încorporate

Puteți încorpora date într-un singur document sau structură în MongoDB. De asemenea, denumit modele de date denormalizate, valorifică întregul potențial al documentelor bogate ale MongoDB. De exemplu, luați în considerare următorul exemplu: avem o colecție, elevi, care conține un document Matt. În acest document, am încorporat două documente, detalii de contact și grad.

{
"_id": "4aad66a4c13bb24f12gh199e",
nume: „Matt”,
detalii de contact: {
telefon: ”555-555-1234”
adresa de e-mail: „[email protected]
},
nota: {
subiect: „CS101”
scor: „B”
}}

Încorporarea stochează detalii relevante în același document sau înregistrare a bazei de date. În acest fel, puteți reduce la minimum interogările și actualizările necesare pentru a efectua operațiuni DB comune.

Când ar trebui să utilizați modele de date încorporate? Acestea sunt utile pentru a îmbunătăți performanța operațiilor de citire. În plus, sunt eficiente pentru prelucrarea recuperării datelor dintr-o singură înregistrare. Cu acest model, puteți utiliza o singură operație de scriere pentru a actualiza datele conexe.

Cu toate acestea, trebuie să rețineți ceva: încorporarea crește dimensiunea documentului după crearea acestuia. În unele cazuri, acest lucru poate afecta performanța la scriere și există, de asemenea, posibilitatea fragmentării datelor din cauza dimensiunii extinse a documentului.

În cele din urmă, puteți interacționa cu documentele încorporate utilizând notația punct și le puteți traversa cu ușurință. Iată sintaxa:

field.nestedField: valoare

Pentru exemplul de mai sus, puteți accesa documentele imbricate scriind următoarea interogare:

db.students.find ({detalii de contact: {telefon: ”555-555-1234”, adresa de e-mail: „[email protected]”}}). pretty ()

Modele de date normalizate (referințe)

Modelele de date normalizate sunt folosite pentru a construi modele de relații unu-la-multe și multe-la-multe. În timp ce lucrați cu modele de documente încorporate, vor exista momente în care va trebui să repetați datele. Aici sunt utile referințele - abordează redundanța. Iată cum putem folosi referințe pentru exemplul de mai sus.

Am împărțit documentul nostru unic în trei documente și de atunci detalii de contact și grad au id-ul de la Matt document, le puteți apela la nevoie.

student
{
_id:
nume de utilizator: „Matt”
}
detalii de contact
{
_id:
numele de utilizator:
e-mail: „[email protected]
telefon: ”555-555-1234”
}
grad
id:
numele de utilizator: ,
subiect: „CS101”,
scor: „B”
}

După cum puteți vedea, modelele de date normalizate împart datele în mai multe colecții utilizând referințe între colecțiile mai noi. Puteți actualiza un singur document, care va actualiza alte colecții. Acesta este un mod eficient de actualizare a datelor și este utilizat mai ales atunci când datele dvs. suferă modificări frecvente.

Iată momentele în care un model de date normalizat este alegerea mai înțeleaptă:

  • Trebuie să modelați seturi mari de date care urmează o anumită ierarhie.
  • Trebuie să reprezentați mai multe relații între mai mulți.
  • Încorporarea ar provoca duplicarea datelor fără a beneficia în mod suficient de performanța dvs. de citire.

Acum puteți modela date în MongoDB cu ușurință

Până acum, știți cum este diferit modelarea datelor în MongoDB de DBM-urile relaționale, mai ales când vine vorba de schemă. De asemenea, ați aflat despre tipurile de modele de date din MongoDB - de-normalizate și normalizate - și ați aflat când să le utilizați.

Și acesta este doar începutul; mai sunt multe de aflat despre modul în care MongoDB vă poate organiza datele.

E-mail
De ce Twitter nu vă permite să vă editați tweet-urile

O opțiune de editare este una dintre cele mai solicitate funcții Twitter. Deci, de ce compania nu o va permite?

Citiți în continuare

Subiecte asemănătoare
  • Programare
  • Bază de date
Despre autor
Usman Ghani (1 articole publicate)Mai multe de la Usman Ghani

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.