Mis on MongoDB?
MongoDB on dokumendipõhine NoSQL-i andmebaas, mida kasutatakse mahukate andmete salvestamiseks. Selle asemel, et kasutada tabeleid ja ridu nagu traditsioonilistes relatsiooniandmebaasides, kasutab MongoDB kollektsioone ja dokumente. Dokumendid koosnevad võtmeväärtuste paaridest, mis on MongoDB andmete põhiühik. Kogud sisaldavad dokumentide ja funktsioonide komplekte, mis on samaväärsed relatsiooniandmebaasi tabelitega. MongoDB on andmebaas, mis tuli ilmsiks 2000. aastate keskel.
Selles õpetuses saate teada
- MongoDB funktsioonid
- MongoDB näide
- MongoDB arhitektuuri põhikomponendid
- Miks kasutada MongoDB-d
- Andmete modelleerimine MongoDB-s
- MongoDB ja RDBMS erinevus
MongoDB funktsioonid
- Iga andmebaas sisaldab kogusid, mis omakorda sisaldavad dokumente. Iga dokument võib erineda erinevate väljade arvuga. Iga dokumendi suurus ja sisu võivad üksteisest erineda.
- Dokumendi struktuur on rohkem kooskõlas sellega, kuidas arendajad oma klasse ja objekte oma vastavas programmeerimiskeeles üles ehitavad. Arendajad ütlevad sageli, et nende klassid ei ole read ja veerud, vaid neil on selge struktuur võtme-väärtuse paaridega.
- Ridadel (või MongoDB-s kutsutud dokumentidel) ei pea eelnevalt skeemi olema määratletud. Selle asemel saab väljad luua käigu pealt.
- MongoDB-s saadaval olev andmemudel võimaldab teil hõlpsamini esindada hierarhilisi seoseid, massiive ja muid keerukamaid struktuure.
- Skaalautuvus - MongoDB keskkonnad on väga skaleeritavad. Ettevõtted üle kogu maailma on määranud klastrid, millest mõned käitavad üle 100 sõlme andmebaasis umbes miljonite dokumentidega
MongoDB näide
Allpool olev näide näitab, kuidas saab dokumenti MongoDB-s modelleerida.
- MongoDB lisab väljale _id kogumi dokumendi kordumatuks tuvastamiseks.
- Võite märkida, et tellimuse andmed (OrderID, Product ja Quantity), mis RDBMS-is salvestatakse tavaliselt eraldi tabelis, samas kui MongoDB-s on see tegelikult varjatud dokumendina kogu ise. See on üks peamisi erinevusi andmete modelleerimisel MongoDB-s.
MongoDB arhitektuuri põhikomponendid
Allpool on toodud mõned levinumad terminid, mida MongoDB-s kasutatakse
- _id - see on väli, mida nõutakse igas MongoDB dokumendis. Väli _id tähistab MongoDB dokumendis ainulaadset väärtust. Väli _id on nagu dokumendi esmane võti. Kui loote uue dokumendi ilma väljadeta _id, loob MongoDB selle välja automaatselt. Nii et näiteks kui näeme ülaltoodud klienditabeli näidet, lisab Mongo DB kollektsiooni igale dokumendile 24-kohalise unikaalse identifikaatori.
_Id | Kliendi ID | Kliendi nimi | Tellimuse ID |
---|---|---|---|
563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Kogumine - see on MongoDB dokumentide rühmitus. Kogumik on samaväärne tabeliga, mis luuakse mis tahes muus RDMS-is, näiteks Oracle'is või MS SQL-is. Kollektsioon eksisteerib ühes andmebaasis. Nagu sissejuhatusest nähtub, ei paku kollektsioonid mingit struktuuri.
- Kursor - see on kursor päringu tulemuste komplektile. Kliendid saavad tulemuste saamiseks kursori kaudu kordada.
- Andmebaas - see on kogude jaoks mõeldud konteiner nagu RDMS-is, kus see on laudade konteiner. Iga andmebaas saab failisüsteemis oma failikomplekti. MongoDB server võib salvestada mitut andmebaasi.
- Dokument - MongoDB kollektsiooni kirjet nimetatakse põhimõtteliselt dokumendiks. Dokument koosneb omakorda välja nimest ja väärtustest.
- Väli - nime-väärtuse paar dokumendis. Dokumendil on null või enam välja. Väljad on analoogsed relatsioonide andmebaaside veergudega.
Järgmisel diagrammil on näide võtmeväärtuste paaridega väljadest. Nii et allpool toodud näites on CustomerID ja 11 üks dokumendis määratletud võtmeväärtuste paaridest.
- JSON - seda nimetatakse JavaScripti objektide tähistamiseks. See on inimesele loetav lihttekstivorming struktureeritud andmete väljendamiseks. JSON-i toetatakse praegu paljudes programmeerimiskeeltes.
Lihtsalt kiire märkus peamise erinevuse välja _id ja tavalise kogumisvälja vahel. Välja _id kasutatakse kogu dokumentide kordumatuks tuvastamiseks ja MongoDB lisab selle kogu loomisel automaatselt.
Miks kasutada MongoDB-d?
Allpool on toodud mõned põhjused, miks peaks MongoDB-d kasutama hakkama
- Dokumendile orienteeritud - kuna MongoDB on NoSQL-tüüpi andmebaas, salvestab see selle asemel andmed relatsioonitüübi vormingus dokumentidesse. See muudab MongoDB väga paindlikuks ja kohandatavaks reaalse ärimaailma olukorra ja nõuetega.
- Ad hoc päringud - MongoDB toetab otsimist välja, vahemiku päringute ja tavaväljendite otsingu järgi. Päringuid saab esitada dokumentide konkreetsete väljade tagastamiseks.
- Indekseerimine - MongoDB-s toimuvate otsingute toimivuse parandamiseks saab luua indekse. Iga MongoDB dokumendi välja saab indekseerida.
- Replikatsioon - MongoDB suudab tagada koopiate komplektidega kõrge kättesaadavuse. Replikakomplekt koosneb kahest või enamast mongo DB eksemplarist. Iga koopiakomplekti liige võib igal ajal toimida esmase või teisese koopia rollis. Esmane koopia on põhiserver, mis suhtleb kliendiga ja täidab kõik lugemis- / kirjutamistoimingud. Sekundaarsed koopiad säilitavad esmase teabe koopiat, kasutades sisseehitatud replikatsiooni. Kui esmane koopia ebaõnnestub, lülitub kopeerimiskomplekt automaatselt teisejärgulisele ja seejärel saab sellest peamine server.
- Koormuse tasakaalustamine - MongoDB kasutab tükeldamise kontseptsiooni horisontaalseks skaleerimiseks, jagades andmed mitme MongoDB eksemplari vahel. MongoDB võib töötada mitme serveri peal, tasakaalustades koormust ja / või dubleerides andmeid, et riistvara rikke korral süsteem töökorras olla.
Andmete modelleerimine MongoDB-s
Nagu nägime jaotisest Sissejuhatus, on MongoDB-s olevatel andmetel paindlik skeem. Erinevalt SQL-i andmebaasidest, kus enne andmete sisestamist peab teil olema deklareeritud tabeli skeem, ei jõusta MongoDB kogud dokumendistruktuuri. Selline paindlikkus muudab MongoDB nii võimsaks.
Mongos andmete modelleerimisel pidage meeles järgmisi asju
- Millised on rakenduse vajadused - vaadake rakenduse ärivajadusi ja vaadake, milliseid andmeid ja rakenduse jaoks vajalikke andmeid on vaja. Selle põhjal veenduge, et dokumendi struktuur oleks vastavalt otsustatud.
- Mis on andmete otsimismustrid - kui näete ette suurt päringute kasutamist, kaaluge päringute tõhususe parandamiseks oma andmemudelis indeksite kasutamist.
- Kas andmebaasis toimuvad sagedased lisamised, värskendused ja eemaldamised? MongoDB üldise keskkonna tõhususe parandamiseks kaaluge indeksite kasutamist uuesti või lisage killustumine, kui see on teie andmete modelleerimise kavandis vajalik.
MongoDB ja RDBMS erinevus
Allpool on toodud mõned peamised terminite erinevused MongoDB ja RDBMS vahel
RDBMS | MongoDB | Erinevus |
---|---|---|
Tabel | Kogumine | RDBMS-is sisaldab tabel veerge ja ridu, mida kasutatakse andmete salvestamiseks, samas kui MongoDB-s on see sama struktuur tuntud kui kogu. Kogumik sisaldab dokumente, mis omakorda sisaldavad väljad, mis omakorda on võtmeväärtuste paarid. |
Rida | Dokument | RDBMS-is tähistab rida tabelis ühte kaudselt struktureeritud andmeüksust. MongoDB-s salvestatakse andmed dokumentidesse. |
Veerg | Väli | RDBMS-is tähistab veerg andmeväärtuste komplekti. Need on MongoDB-s tuntud kui Fields. |
Liitub | Manustatud dokumendid | RDBMS-is levitatakse andmeid mõnikord erinevate tabelite vahel ja kõigi andmete täieliku vaate kuvamiseks moodustatakse andmete saamiseks mõnikord tabelite vahel liit. MongoDB-s salvestatakse andmed tavaliselt ühes kogumis, kuid eraldatakse manustatud dokumentide abil. Nii et MongoDB-s puudub liitumiste mõiste. |
Lisaks terminite erinevustele on allpool toodud mõned muud erinevused
- Relatsioonandmebaasid on tuntud andmete terviklikkuse tagamise eest. See ei ole MongoDB-s selgesõnaline nõue.
- RDBMS nõuab andmete kõigepealt normaliseerimist, et see saaks vältida harvaesinevate kirjete teket ja dubleerimist. Andmete normaliseerimisel on nõutav rohkem tabeleid, mille tulemuseks on rohkem tabelite liitumisi, mis nõuab rohkem võtmeid ja indekse.
Kui andmebaasid hakkavad kasvama, võib jõudlus probleemiks saada. Jällegi pole see MongoDB-s selgesõnaline nõue. MongoDB on paindlik ja ei vaja andmete kõigepealt normaliseerimist.