Kas ir MongoDB? Ievads, arhitektūra, funkcijas un amp; Piemērs

Kas ir MongoDB?

MongoDB ir uz dokumentiem orientēta NoSQL datu bāze, ko izmanto liela apjoma datu glabāšanai. Tā vietā, lai izmantotu tabulas un rindas, kā tradicionālajās relāciju datu bāzēs, MongoDB izmanto kolekcijas un dokumentus. Dokumenti sastāv no atslēgu un vērtību pāriem, kas ir MongoDB datu pamatvienība. Kolekcijās ir dokumentu kopumi un funkcijas, kas ir ekvivalents relāciju datu bāzes tabulām. MongoDB ir datubāze, kas parādījās aptuveni 2000. gadu vidū.

Šajā apmācībā jūs uzzināsiet

  • MongoDB funkcijas
  • MongoDB piemērs
  • MongoDB arhitektūras galvenie komponenti
  • Kāpēc izmantot MongoDB
  • Datu modelēšana MongoDB
  • Atšķirība starp MongoDB un RDBMS

MongoDB funkcijas

    1. Katrā datu bāzē ir kolekcijas, kurās savukārt ir dokumenti. Katrs dokuments var būt atšķirīgs ar dažādu lauku skaitu. Katra dokumenta lielums un saturs var atšķirties viens no otra.
    2. Dokumenta struktūra vairāk atbilst tam, kā izstrādātāji konstruē savas klases un objektus attiecīgajās programmēšanas valodās. Izstrādātāji bieži saka, ka viņu klases nav rindas un kolonnas, bet tām ir skaidra struktūra ar atslēgu un vērtību pāriem.
    3. Rindām (vai dokumentiem, kas izsaukti MongoDB) nav jābūt iepriekš definētai shēmai. Tā vietā laukus var izveidot lidojot.
    4. MongoDB pieejamais datu modelis ļauj vieglāk attēlot hierarhiskas attiecības, glabāt masīvus un citas sarežģītākas struktūras.
  1. Mērogojamība - MongoDB vide ir ļoti mērogojama. Uzņēmumi visā pasaulē ir definējuši kopas, no kurām dažas vada vairāk nekā 100 mezglus ar aptuveni miljoniem dokumentu datu bāzē

MongoDB piemērs

Zemāk sniegtajā piemērā parādīts, kā dokumentu var modelēt MongoDB.

  1. Lauku _id MongoDB ir pievienojis, lai unikāli identificētu dokumentu kolekcijā.
  2. Jūs varat atzīmēt, ka pasūtījuma dati (OrderID, Product un Quantity), kas RDBMS parasti tiek glabāti atsevišķā tabulā, savukārt MongoDB tie faktiski tiek glabāti kā iegultais dokuments pašā kolekcijā. Šī ir viena no galvenajām atšķirībām, kā dati tiek modelēti MongoDB.

MongoDB arhitektūras galvenie komponenti

Tālāk ir minēti daži no MongoDB lietotajiem vispārpieņemtajiem terminiem

  1. _id - tas ir lauks, kas nepieciešams katrā MongoDB dokumentā. Lauks _id apzīmē unikālu vērtību MongoDB dokumentā. Lauks _id ir kā dokumenta galvenā atslēga. Ja izveidojat jaunu dokumentu bez lauka _id, MongoDB automātiski izveidos lauku. Tā, piemēram, ja mēs redzam iepriekš minētās klienta tabulas piemēru, Mongo DB katram kolekcijas dokumentam pievienos 24 ciparu unikālo identifikatoru.
_Id CustomerID Klienta vārds OrderID
563479cc8a8a4246bd27d784 11 Guru99 111.
563479cc7a8a4246bd47d784 22 Trevors Smits 222
563479cc9a8a4246bd57d784 33 Nikola 333
  1. Kolekcija - šī ir MongoDB dokumentu grupa. Kolekcija ir ekvivalents tabulai, kas izveidota jebkurā citā RDMS, piemēram, Oracle vai MS SQL. Kolekcija pastāv vienā datu bāzē. Kā redzams no ievada, kolekcijas nepiemēro nekādu struktūru.
  2. Kursors - tas ir rādītājs vaicājuma rezultātu kopai. Klienti var atkārtot kursoru, lai izgūtu rezultātus.
  3. Datu bāze - tas ir konteiners kolekcijām, piemēram, RDMS, kur tas ir konteiners tabulām. Katra datu bāze failu sistēmā iegūst savu failu kopu. MongoDB serveris var uzglabāt vairākas datu bāzes.
  4. Dokuments - ierakstu MongoDB kolekcijā pamatā sauc par dokumentu. Savukārt dokuments sastāvēs no lauka nosaukuma un vērtībām.
  5. Lauks - nosaukuma un vērtības pāris dokumentā. Dokumentam ir nulle vai vairāk lauku. Lauki ir analogi kolonnām relāciju datu bāzēs.

    Šī diagramma parāda lauku ar atslēgas vērtību pāriem piemēru. Tātad zemāk sniegtajā piemērā CustomerID un 11 ir viens no dokumentā definētajiem atslēgas vērtību pāriem.

  1. JSON - tas ir pazīstams kā JavaScript objektu apzīmējums. Tas ir cilvēkiem lasāms, vienkārša teksta formāts strukturētu datu paušanai. JSON pašlaik tiek atbalstīts daudzās programmēšanas valodās.

Vienkārša īsa piezīme par galveno atšķirību starp lauku _id un parasto kolekcijas lauku. Lauks _id tiek izmantots, lai unikāli identificētu kolekcijas dokumentus, un MongoDB to automātiski pievieno, izveidojot kolekciju.

Kāpēc izmantot MongoDB?

Šeit ir daži no iemesliem, kāpēc vajadzētu sākt lietot MongoDB

  1. Orientēts uz dokumentu - Tā kā MongoDB ir NoSQL tipa datu bāze, tā vietā, lai dati būtu relāciju tipa formātā, tie datus glabā dokumentos. Tas padara MongoDB ļoti elastīgu un pielāgojamu reālajai biznesa pasaules situācijai un prasībām.
  2. Ad hoc vaicājumi - MongoDB atbalsta meklēšanu pēc lauka, diapazona vaicājumiem un regulāras izteiksmes meklējumiem. Var pieprasīt, lai dokumentos atgrieztu noteiktus laukus.
  3. Indeksēšana - indeksus var izveidot, lai uzlabotu meklēšanas veiktspēju MongoDB. Jebkuru lauku MongoDB dokumentā var indeksēt.
  4. Replikācija - MongoDB var nodrošināt augstu pieejamību ar kopiju komplektiem. Replikas kopa sastāv no diviem vai vairākiem mongo DB gadījumiem. Katrs kopiju kopas dalībnieks jebkurā laikā var darboties kā primārā vai sekundārā replika. Primārā kopija ir galvenais serveris, kas mijiedarbojas ar klientu un veic visas lasīšanas / rakstīšanas darbības. Sekundārās kopijas uztur primārā datu kopiju, izmantojot iebūvēto replikāciju. Kad primārā replika neizdodas, kopiju kopa automātiski pāriet uz sekundāro un pēc tam tā kļūst par primāro serveri.
  5. Slodzes līdzsvarošana - MongoDB izmanto sadalīšanas jēdzienu, lai mērogotu horizontāli, sadalot datus vairākos MongoDB gadījumos. MongoDB var palaist vairākos serveros, līdzsvarojot slodzi un / vai dublējot datus, lai aparatūras kļūmes gadījumā sistēma darbotos un darbotos.

Datu modelēšana MongoDB

Kā mēs redzējām no sadaļas Ievads, MongoDB datiem ir elastīga shēma. Atšķirībā no SQL datu bāzēm, kur pirms datu ievietošanas ir jādeklarē tabulas shēma, MongoDB kolekcijās netiek ieviesta dokumentu struktūra. Šāda veida elastība padara MongoDB tik spēcīgu.

Modelējot datus Mongo valodā, ņemiet vērā šādas lietas

  1. Kādas ir lietojumprogrammas vajadzības - aplūkojiet lietojumprogrammas biznesa vajadzības un noskaidrojiet, kādi dati un lietojumprogrammai nepieciešamo datu veids. Pamatojoties uz to, pārliecinieties, ka dokumenta struktūra tiek izlemta atbilstoši.
  2. Kas ir datu izguves modeļi - ja paredzat lielu vaicājumu lietojumu, apsveriet iespēju izmantot rādītājus savā datu modelī, lai uzlabotu vaicājumu efektivitāti.
  3. Vai datu bāzē notiek bieži ievietošana, atjaunināšana un noņemšana? Pārskatiet indeksu izmantošanu vai, ja nepieciešams, iekļaujiet sadalīšanu datu modelēšanas projektā, lai uzlabotu vispārējās MongoDB vides efektivitāti.

Atšķirība starp MongoDB un RDBMS

Tālāk ir norādītas dažas galvenās terminu atšķirības starp MongoDB un RDBMS

RDBMS MongoDB Atšķirība
Tabula Kolekcija RDBMS tabulā ir kolonnas un rindas, kuras izmanto datu glabāšanai, turpretī MongoDB šī pati struktūra ir pazīstama kā kolekcija. Kolekcijā ir dokumenti, kuros savukārt ir lauki, kas savukārt ir atslēgu un vērtību pāri.
Rinda Dokuments RDBMS rindā ir redzams viens netieši strukturēts datu elements tabulā. Vietnē MongoDB dati tiek glabāti dokumentos.
Kolonna Lauks RDBMS kolonna apzīmē datu vērtību kopu. Tie MongoDB ir pazīstami kā lauki.
Pievienojas Iegulti dokumenti RDBMS dati dažreiz tiek izplatīti dažādās tabulās, un, lai parādītu visu datu pilnīgu skatu, dažreiz tabulās tiek izveidota savienošana, lai iegūtu datus. Programmā MongoDB dati parasti tiek glabāti vienā kolekcijā, bet atdalīti, izmantojot iegultos dokumentus. Tāpēc MongoDB nav pievienošanās jēdziena.

Papildus terminu atšķirībām ir norādītas dažas citas atšķirības

  1. Relāciju datu bāzes ir pazīstamas ar datu integritātes ieviešanu. MongoDB tā nav skaidra prasība.
  2. RDBMS prasa, lai dati vispirms tiktu normalizēti, lai tie varētu novērst nenosakāmu autoru ierakstus un dublikātus. Pēc tam datu normalizēšanai ir vajadzīga vairāk tabulu, kā rezultātā būs jāpievieno vairāk tabulu, tādējādi pieprasot vairāk atslēgu un indeksu.

    Kad datu bāzes sāk augt, veiktspēja var kļūt par problēmu. Arī šī nav skaidra prasība MongoDB. MongoDB ir elastīgs, un tam nav nepieciešams vispirms normalizēt datus.

Interesanti raksti...