Što je MongoDB? Uvod, Architekstura, značajke i primjer

Što je MongoDB?

MongoDB je dokumentno orijentirana NoSQL baza podataka koja se koristi za pohranu velikih količina podataka. Umjesto korištenja tablica i redaka kao u tradicionalnim relacijskim bazama podataka, MongoDB koristi zbirke i dokumente. Dokumenti se sastoje od parova ključ-vrijednost koji su osnovna jedinica podataka u MongoDB. Zbirke sadrže skupove dokumenata i funkcije koje su ekvivalentne tablicama relacijskih baza podataka. MongoDB je baza podataka koja se pojavila sredinom 2000-ih.

MongoDB Značajke

  1. Svaka baza podataka sadrži zbirke koje pak sadrže dokumente. Svaki dokument može biti različit s različitim brojem polja. Veličina i sadržaj svakog dokumenta mogu se međusobno razlikovati.
  2. Struktura dokumenta više je u skladu s načinom na koji programeri konstruiraju svoje klase i objekte u svojim odgovarajućim programskim jezicima. Programeri će često reći da njihove klase nisu redovi i stupci, već imaju jasnu strukturu s parovima ključ-vrijednost.
  3. Redovi (ili dokumenti kako se pozivaju u MongoDB) ne mora imati prethodno definiranu shemu. Umjesto toga, polja se mogu kreirati u hodu.
  4. Model podataka dostupan unutar MongoDB omogućuje lakše predstavljanje hijerarhijskih odnosa, pohranjivanje nizova i drugih složenijih struktura.
  5. Skalabilnost – The MongoDB okruženja su vrlo skalabilna. Tvrtke diljem svijeta definirale su klastere od kojih neki pokreću više od 100 čvorova s ​​oko milijunima dokumenata unutar baze podataka

MongoDB Primjer

Primjer u nastavku pokazuje kako se dokument može modelirati MongoDB.

  1. Polje _id dodaje MongoDB za jedinstvenu identifikaciju dokumenta u zbirci.
  2. Ono što možete primijetiti je da će podaci o narudžbi (ID narudžbe, proizvod i količina) koji se u RDBMS-u obično pohranjuju u zasebnu tablicu, dok u MongoDB zapravo je pohranjena kao ugrađeni dokument u samoj zbirci. Ovo je jedna od ključnih razlika u načinu na koji se podaci modeliraju MongoDB.

MongoDB Primjer

Ključne komponente MongoDB Architektura

Ispod je nekoliko uobičajenih izraza koji se koriste u MongoDB

  1. _iskaznica – Ovo je polje obavezno u svakom MongoDB dokument. Polje _id predstavlja jedinstvenu vrijednost u MongoDB dokument. Polje _id je kao primarni ključ dokumenta. Ako izradite novi dokument bez polja _id, MongoDB automatski će stvoriti polje. Na primjer, ako vidimo primjer gornje tablice kupaca, Mongo DB će dodati jedinstveni identifikator od 24 znamenke svakom dokumentu u zbirci.
_Iskaznica ID kupca Ime kupca ID narudžbe
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Kolekcija – Ovo je grupacija od MongoDB dokumenata. Zbirka je ekvivalent tablici koja je stvorena u bilo kojem drugom RDMS-u kao što je Oracle ili MS SQL. Zbirka postoji unutar jedne baze podataka. Kao što se vidi iz uvoda, zbirke ne nameću nikakvu strukturu.
  2. Pokazivač – Ovo je pokazivač na skup rezultata upita. Klijenti mogu iterirati kroz pokazivač kako bi dohvatili rezultate.
  3. Baza podataka – Ovo je spremnik za zbirke kao u RDMS-u gdje je spremnik za tablice. Svaka baza podataka dobiva svoj skup datoteka u datotečnom sustavu. A MongoDB poslužitelj može pohraniti više baza podataka.
  4. dokument – Zapis u a MongoDB zbirka se u osnovi naziva dokumentom. Dokument će se pak sastojati od naziva polja i vrijednosti.
  5. Polje – Par ime-vrijednost u dokumentu. Dokument ima nula ili više polja. Polja su analogna stupcima u relacijskim bazama podataka. Sljedeći dijagram prikazuje primjer polja s parovima vrijednosti ključa. Dakle, u donjem primjeru CustomerID i 11 jedan je od para ključeva vrijednosti definiranih u dokumentu.

Ključne komponente MongoDB Architektura

  1. JSON – Ovo je poznato kao JavaScript Notacija objekta. Ovo je čitljiv format običnog teksta za izražavanje strukturiranih podataka. JSON je trenutno podržan u mnogim programskim jezicima.

Samo kratka napomena o ključnoj razlici između polja _id i normalnog polja za prikupljanje. Polje _id koristi se za jedinstvenu identifikaciju dokumenata u zbirci i automatski ga dodaje MongoDB kada je zbirka stvorena.

Zašto koristiti MongoDB?

U nastavku je nekoliko razloga zašto bi trebali početi koristiti MongoDB

  1. Orijentiran na dokumente – Od MongoDB je NoSQL tipa baze podataka, umjesto podataka u formatu relacijskog tipa, pohranjuje podatke u dokumentima. Ovo cini MongoDB vrlo fleksibilan i prilagodljiv situaciji i zahtjevima stvarnog poslovnog svijeta.
  2. Ad hoc upiti – MongoDB podržava pretraživanje po polju, upitima raspona i pretragama regularnih izraza. Mogu se postavljati upiti za vraćanje određenih polja unutar dokumenata.
  3. Indeksiranje – Indeksi se mogu stvoriti kako bi se poboljšala izvedba pretraživanja unutar MongoDB. Bilo koje polje u a MongoDB dokument se može indeksirati.
  4. Replikacija – MongoDB može pružiti visoku dostupnost sa setovima replika. Skup replika sastoji se od dvije ili više mongo DB instanci. Svaki član skupa replika može djelovati u ulozi primarne ili sekundarne replike u bilo kojem trenutku. Primarna replika je glavni poslužitelj koji je u interakciji s klijentom i izvodi sve operacije čitanja/pisanja. Sekundarne replike održavaju kopiju podataka primarne pomoću ugrađene replikacije. Kada primarna replika ne uspije, skup replika se automatski prebacuje na sekundarni i tada postaje primarni poslužitelj.
  5. Balansiranje opterećenja – MongoDB koristi koncept dijeljenja za vodoravno skaliranje dijeljenjem podataka na više MongoDB instanci. MongoDB može raditi preko više poslužitelja, uravnotežujući opterećenje i/ili duplicirajući podatke kako bi sustav održao u radu u slučaju kvara hardvera.

Modeliranje podataka u MongoDB

Kao što smo vidjeli iz odjeljka Uvod, podaci u MongoDB ima fleksibilnu shemu. Za razliku od u SQL baze podataka, gdje morate imati deklariranu shemu tablice prije umetanja podataka, MongoDBZbirke korisnika ne provode strukturu dokumenta. Ova vrsta fleksibilnosti je ono što čini MongoDB tako moćan.

Kada modelirate podatke u Mongu, imajte na umu sljedeće

  1. Koje su potrebe aplikacije – Pogledajte poslovne potrebe aplikacije i pogledajte koji su podaci i vrsta podataka potrebni za aplikaciju. Na temelju toga osigurajte odgovarajuću odluku o strukturi dokumenta.
  2. Što su obrasci za dohvaćanje podataka – ako predvidite veliku upotrebu upita, razmislite o upotrebi indeksa u svom modelu podataka kako biste poboljšali učinkovitost upita.
  3. Događaju li se česta umetanja, ažuriranja i uklanjanja u bazi podataka? Ponovno razmotrite upotrebu indeksa ili uključite dijeljenje ako je potrebno u vašem dizajnu modeliranja podataka kako biste poboljšali učinkovitost svog cjelokupnog MongoDB okoliš.

Razlika između MongoDB & RDBMS

U nastavku su neke od ključnih razlika između pojmova MongoDB i RDBMS

RDBMS MongoDB Razlika
Stol Kolekcija In RDBMS, tablica sadrži stupce i retke koji se koriste za pohranjivanje podataka, dok u MongoDB, ta ista struktura poznata je kao zbirka. Zbirka sadrži dokumente koji pak sadrže polja, koja su pak parovi ključ-vrijednost.
Red dokument U RDBMS-u, redak predstavlja jednu, implicitno strukturiranu podatkovnu stavku u tablici. U MongoDB, podaci su pohranjeni u dokumentima.
Kolona Polje U RDBMS-u, stupac označava skup vrijednosti podataka. Ovi u MongoDB poznati su kao Fields.
Pridružuje Ugrađeni dokumenti U RDBMS-u, podaci su ponekad raspoređeni po različitim tablicama, a kako bi se prikazao potpuni prikaz svih podataka, ponekad se oblikuje spajanje preko tablica kako bi se dobili podaci. U MongoDB, podaci se obično pohranjuju u jednu zbirku, ali odvojeni pomoću ugrađenih dokumenata. Dakle, ne postoji koncept pridruživanja MongoDB.

Osim razlika u terminima, u nastavku je prikazano nekoliko drugih razlika

  1. Relacijske baze podataka poznate su po provođenju integriteta podataka. Ovo nije izričit zahtjev u MongoDB.
  2. RDBMS zahtijeva da podaci budu normalizirani prvo tako da može spriječiti zapise siroče i duplikate. Normaliziranje podataka zatim ima zahtjev za više tablica, što će onda rezultirati s više spajanja tablica, stoga zahtijeva više ključeva i indeksa. Kako baze podataka počinju rasti, izvedba može postati problem. Opet, ovo nije izričit zahtjev u MongoDB. MongoDB je fleksibilan i ne zahtijeva da se podaci prvo normaliziraju.

Sažmite ovu objavu uz: