Mis on MongoDB? Sissejuhatus, Architektuur, funktsioonid ja näide

Mis on MongoDB?

MongoDB on dokumendile orienteeritud NoSQL-i andmebaas, mida kasutatakse suure mahuga andmete salvestamiseks. Selle asemel, et kasutada tabeleid ja ridu nagu traditsioonilistes relatsiooniandmebaasides, MongoDB kasutab kogusid ja dokumente. Dokumendid koosnevad võtme-väärtuste paaridest, mis on andmete põhiühikuks MongoDB. Kogud sisaldavad dokumentide ja funktsioonide komplekte, mis on samaväärsed relatsioonilise andmebaasi tabelitega. MongoDB on andmebaas, mis tuli päevavalgele 2000. aastate keskpaiga paiku.

MongoDB FUNKTSIOONID

  1. Iga andmebaas sisaldab kogusid, mis omakorda sisaldavad dokumente. Iga dokument võib erineda erineva arvu väljadega. Iga dokumendi suurus ja sisu võivad üksteisest erineda.
  2. Dokumendi struktuur on rohkem kooskõlas sellega, kuidas arendajad oma klasse ja objekte oma vastavates programmeerimiskeeltes koostavad. Arendajad ütlevad sageli, et nende klassid ei ole read ja veerud, vaid neil on selge struktuur võtme-väärtuste paaridega.
  3. read (või dokumendid, nagu sisse kutsutud MongoDB) ei pea olema eelnevalt määratletud skeemi. Selle asemel saab väljad luua käigu pealt.
  4. Sees saadaval olev andmemudel MongoDB võimaldab teil hõlpsamini esitada hierarhilisi seoseid, salvestada massiive ja muid keerukamaid struktuure.
  5. Skaleeritavus – MongoDB keskkonnad on väga skaleeritavad. Ettevõtted üle kogu maailma on määratlenud klastreid, millest mõnel on üle 100 sõlme ja andmebaasis on umbes miljoneid dokumente

MongoDB Näide

Allolev näide näitab, kuidas saab dokumenti modelleerida MongoDB.

  1. Välja _id lisab MongoDB kogus oleva dokumendi unikaalseks tuvastamiseks.
  2. Võite märkida, et tellimuse andmed (tellimuse ID, toode ja kogus), mis RDBMS-is salvestatakse tavaliselt eraldi tabelisse MongoDB see on tegelikult salvestatud manustatud dokumendina kogusse endasse. See on üks peamisi erinevusi andmete modelleerimisel MongoDB.

MongoDB Näide

Peamised komponendid MongoDB Architektuur

Allpool on mõned levinumad terminid, mida kasutatakse MongoDB

  1. _id – See on igas valdkonnas kohustuslik MongoDB dokument. Väli _id tähistab unikaalset väärtust MongoDB dokument. Väli _id on nagu dokumendi primaarvõti. Kui loote uue dokumendi ilma _id väljata, MongoDB loob välja automaatselt. Näiteks kui näeme ülaltoodud klienditabeli näidet, lisab Mongo DB igale kogus olevale dokumendile 24-kohalise kordumatu identifikaatori.
_Id Kliendi ID Kliendi nimi Tellimuse ID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. kogumine – See on rühmitus MongoDB dokumente. Kogu on samaväärne tabeliga, mis luuakse mis tahes muus RDMS-is, näiteks Oracle või MS SQL. Kogu eksisteerib ühes andmebaasis. Sissejuhatusest nähtub, et kollektsioonid ei jõusta mingit struktuuri.
  2. Kursor – See on kursor päringu tulemuste kogumile. Kliendid saavad tulemuste hankimiseks kursori abil itereerida.
  3. andmebaas - See on kogude konteiner nagu RDMS-is, kus see on tabelite konteiner. Iga andmebaas saab failisüsteemis oma failide komplekti. A MongoDB server võib salvestada mitut andmebaasi.
  4. Dokument – rekord aastal a MongoDB kogu nimetatakse põhimõtteliselt dokumendiks. Dokument omakorda koosneb välja nimest ja väärtustest.
  5. Väli – nime-väärtuse paar dokumendis. Dokumendis on null või enam välja. Väljad on analoogsed relatsiooniandmebaaside veergudega. Järgmisel diagrammil on näide võtmeväärtuste paaridest väljad. Allolevas näites on kliendi ID ja 11 üks dokumendis määratletud võtmeväärtuste paaridest.

Peamised komponendid MongoDB Architektuur

  1. JSON – Seda tuntakse kui JavaScript Objekti tähistus. See on inimesele loetav lihttekstivorming struktureeritud andmete väljendamiseks. JSON-i toetatakse praegu paljudes programmeerimiskeeltes.

Lihtsalt kiire märkus peamise erinevuse kohta välja _id ja tavalise koguvälja vahel. Välja _id kasutatakse kogus olevate dokumentide unikaalseks tuvastamiseks ja selle lisab automaatselt MongoDB kui kollektsioon luuakse.

Miks kasutada MongoDB?

Allpool on toodud mõned põhjused, miks peaks kasutama hakkama MongoDB

  1. Dokumendile orienteeritud – Alates MongoDB on NoSQL tüüpi andmebaasi, selle asemel, et omada andmeid relatsioonitüüpi vormingus, salvestab see andmed dokumentidesse. See teeb MongoDB väga paindlik ja kohanemisvõimeline tegeliku ärimaailma olukorra ja nõuetega.
  2. Ad hoc päringud – MongoDB toetab otsingut väljade, vahemiku päringute ja regulaaravaldise otsinguid. Dokumentide konkreetsete väljade tagastamiseks saab teha päringuid.
  3. Indekseerimine – siseste otsingute toimivuse parandamiseks saab luua indekseid MongoDB. Mis tahes väli a MongoDB dokumenti saab indekseerida.
  4. replikatsioon – MongoDB suudab pakkuda koopiakomplektidega kõrget kättesaadavust. Koopiakomplekt koosneb kahest või enamast mongo DB eksemplarist. Iga koopiakomplekti liige võib igal ajal tegutseda esmase või sekundaarse koopia rollis. Esmane koopia on peamine server, mis suhtleb kliendiga ja teostab kõiki lugemis-/kirjutustoiminguid. Sekundaarsed koopiad säilitavad sisseehitatud replikatsiooni abil esmase andmete koopia. Kui esmane koopia ebaõnnestub, lülitub koopiakomplekt automaatselt teiseseks ja seejärel muutub see esmaseks serveriks.
  5. Koormuse tasakaalustamine - MongoDB kasutab jagamise kontseptsiooni horisontaalseks skaleerimiseks, jagades andmed mitmeks MongoDB juhtumeid. MongoDB võib töötada üle mitme serveri, tasakaalustades koormust ja/või dubleerides andmeid, et riistvara rikke korral süsteem töös hoida.

Andmete modelleerimine sisse MongoDB

Nagu nägime jaotisest Sissejuhatus, on andmed MongoDB on paindlik skeem. Erinevalt sisse SQL andmebaasid, kus enne andmete sisestamist peab olema deklareeritud tabeli skeem, MongoDBi kogud ei jõusta dokumendistruktuuri. Selline paindlikkus on see, mis teeb MongoDB nii võimas.

Mongos andmete modelleerimisel pidage meeles järgmist

  1. Millised on rakenduse vajadused – Vaadake rakenduse ärilisi vajadusi ja vaadake, milliseid andmeid ja millist tüüpi andmeid rakenduse jaoks vaja on. Sellest lähtuvalt veenduge, et dokumendi struktuur otsustatakse vastavalt.
  2. Mis on andmeotsingumustrid? Kui näete ette palju päringute kasutamist, siis kaaluge päringute tõhususe parandamiseks oma andmemudelis indeksite kasutamist.
  3. Kas andmebaasi lisatakse, värskendatakse ja eemaldatakse sageli? Kaaluge indeksite kasutamist uuesti või lisage andmemodelleerimise kujundusse vajaduse korral jaotamine, et parandada oma üldist tõhusust. MongoDB keskkond.

Erinevus MongoDB & RDBMS

Allpool on toodud mõned peamised terminite erinevused MongoDB ja RDBMS

RDBMS MongoDB Erinevus
Tabel kogumine In RDBMS, sisaldab tabel veerge ja ridu, mida kasutatakse andmete salvestamiseks, samas kui MongoDB, seda sama struktuuri tuntakse kollektsioonina. Kogu sisaldab dokumente, mis omakorda sisaldavad välju, mis omakorda on võtme-väärtuse paarid.
Rida Dokument RDBMS-is tähistab rida ühte kaudselt struktureeritud andmeüksust tabelis. sisse MongoDB, salvestatakse andmed dokumentidesse.
Veerg Väli RDBMS-is tähistab veerg andmeväärtuste komplekti. Need sisse MongoDB on tuntud kui väljad.
Liita Manustatud dokumendid RDBMS-is jaotatakse andmed mõnikord erinevate tabelite vahel ja kõigi andmete täieliku ülevaate kuvamiseks moodustatakse andmete saamiseks mõnikord tabelite ühendamine. sisse MongoDB, salvestatakse andmed tavaliselt ühte kogusse, kuid eraldatakse manustatud dokumentide abil. Seega pole liitumise kontseptsiooni MongoDB.

Lisaks terminite erinevustele on allpool näidatud mõned muud erinevused

  1. Relatsiooniandmebaasid on tuntud andmete terviklikkuse jõustamise poolest. See ei ole sõnaselge nõue MongoDB.
  2. RDBMS nõuab, et andmed oleksid normaliseeritud Esiteks, et see saaks ära hoida orbkirjeid ja duplikaate. Andmete normaliseerimisel on seejärel vaja rohkem tabeleid, mille tulemuseks on rohkem tabelite liitumisi, mistõttu on vaja rohkem võtmeid ja indekseid. Kuna andmebaasid hakkavad kasvama, võib jõudlus muutuda probleemiks. Jällegi ei ole see selgesõnaline nõue MongoDB. MongoDB on paindlik ega vaja andmeid esmalt normaliseerida.