Kaj je MongoDB?
MongoDB je dokumentno usmerjena baza podatkov NoSQL, ki se uporablja za veliko količino podatkov. Namesto tabel in vrstic kot v tradicionalnih relacijskih zbirkah podatkov MongoDB uporablja zbirke in dokumente. Dokumenti so sestavljeni iz parov ključ-vrednost, ki so osnovna enota podatkov v MongoDB. Zbirke vsebujejo nabore dokumentov in funkcije, kar je enakovredno tabelam relacijskih baz podatkov. MongoDB je baza podatkov, ki je prišla na svet sredi 2000-ih.
V tej vadnici boste izvedeli-
- Značilnosti MongoDB
- Primer MongoDB
- Ključne komponente arhitekture MongoDB
- Zakaj uporabljati MongoDB
- Modeliranje podatkov v MongoDB
- Razlika med MongoDB in RDBMS
Značilnosti MongoDB
- Vsaka zbirka podatkov vsebuje zbirke, ki pa vsebujejo dokumente. Vsak dokument je lahko različen z različnim številom polj. Velikost in vsebina vsakega dokumenta se lahko razlikujeta.
- Struktura dokumentov je bolj v skladu s tem, kako razvijalci gradijo svoje razrede in predmete v svojih programskih jezikih. Razvijalci pogosto rečejo, da njihovi razredi niso vrstice in stolpci, ampak imajo jasno strukturo s pari ključ / vrednost.
- V vrsticah (ali dokumentih, kot se imenuje v MongoDB) ni treba predhodno definirati sheme. Namesto tega lahko polja ustvarjate sproti.
- Podatkovni model, ki je na voljo v MongoDB, vam omogoča lažje predstavljanje hierarhičnih razmerij, shranjevanje nizov in drugih bolj zapletenih struktur.
- Razširljivost - okolja MongoDB so zelo razširljiva. Podjetja po vsem svetu so opredelila grozde, pri čemer nekatera vodijo več kot 100 vozlišč z okoli milijoni dokumentov v zbirki podatkov
Primer MongoDB
Spodnji primer prikazuje, kako je mogoče dokument modelirati v MongoDB.
- MongoDB doda polje _id za enolično identifikacijo dokumenta v zbirki.
- Opazite lahko, da so podatki o naročilu (ID naročila, izdelek in količina), ki so v RDBMS običajno shranjeni v ločeni tabeli, medtem ko so v MongoDB dejansko shranjeni kot vdelani dokument v sami zbirki. To je ena ključnih razlik pri modeliranju podatkov v MongoDB.
Ključne komponente arhitekture MongoDB
Spodaj je nekaj pogostih izrazov, ki se uporabljajo v MongoDB
- _id - To polje je obvezno za vsak dokument MongoDB. Polje _id predstavlja edinstveno vrednost v dokumentu MongoDB. Polje _id je kot primarni ključ dokumenta. Če ustvarite nov dokument brez polja _id, ga bo MongoDB samodejno ustvaril. Če na primer vidimo primer zgornje tabele strank, bo Mongo DB vsakemu dokumentu v zbirki dodal 24-mestni enolični identifikator.
_Id | Identifikacijska številka stranke | Ime stranke | Številka naročila |
---|---|---|---|
563479cc8a8a4246bd27d784 | 11. | Guru99 | 111 |
563479cc7a8a4246bd47d784 | 22. | Trevor Smith | 222 |
563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Zbirka - to je skupina dokumentov MongoDB. Zbirka je enakovredna tabeli, ki je ustvarjena v katerem koli drugem RDMS, kot je Oracle ali MS SQL. Zbirka obstaja znotraj ene baze podatkov. Kot je razvidno iz uvoda, zbirke ne uveljavljajo kakršne koli strukture.
- Kazalec - To je kazalec na nabor rezultatov poizvedbe. Odjemalci lahko prehajajo skozi kazalec, da pridobijo rezultate.
- Zbirka podatkov - to je vsebnik za zbirke, kot je v RDMS, kjer je vsebnik za tabele. Vsaka baza podatkov dobi svoj nabor datotek v datotečnem sistemu. Strežnik MongoDB lahko shrani več baz podatkov.
- Dokument - zapis v zbirki MongoDB se v bistvu imenuje dokument. Dokument pa bo sestavljen iz imena polja in vrednosti.
- Polje - par ime-vrednost v dokumentu. Dokument ima nič ali več polj. Polja so analogna stolpcem v relacijskih zbirkah podatkov.
Naslednji diagram prikazuje primer polj s pari vrednosti Key. Torej je v spodnjem primeru CustomerID in 11 eden od parov vrednosti ključev, opredeljenih v dokumentu.
- JSON - To je znano kot JavaScript Object Notation. To je človekom berljiva oblika navadnega besedila za izražanje strukturiranih podatkov. JSON je trenutno podprt v številnih programskih jezikih.
Samo kratka opomba o ključni razliki med poljem _id in običajnim poljem za zbiranje. Polje _id se uporablja za enolično identifikacijo dokumentov v zbirki in ga MongoDB samodejno doda, ko je zbirka ustvarjena.
Zakaj uporabljati MongoDB?
Spodaj je nekaj razlogov, zakaj bi morali začeti uporabljati MongoDB
- Dokument usmerjen - Ker je MongoDB baza podatkov tipa NoSQL, namesto da bi imela podatke v obliki relacijskega tipa, podatke shrani v dokumente. Zaradi tega je MongoDB zelo prilagodljiv in prilagodljiv razmeram in zahtevam v poslovnem svetu.
- Ad hoc poizvedbe - MongoDB podpira iskanje po poljih, obseg poizvedb in iskanje po regularnih izrazih. Poizvedbe lahko vrnejo določena polja znotraj dokumentov.
- Indeksiranje - indekse je mogoče ustvariti za izboljšanje uspešnosti iskanj v MongoDB. Katero koli polje v dokumentu MongoDB je mogoče indeksirati.
- Replikacija - MongoDB lahko z nabori replik zagotovi visoko razpoložljivost. Nabor replik je sestavljen iz dveh ali več primerkov mongo DB. Vsak član nabora replik lahko kadar koli deluje v vlogi primarne ali sekundarne replike. Primarna replika je glavni strežnik, ki komunicira s stranko in izvaja vse operacije branja / pisanja. Sekundarne replike vzdržujejo kopijo podatkov primarnega z uporabo vgrajene replikacije. Ko primarna replika ne uspe, nabor replik samodejno preklopi na sekundarni in nato postane primarni strežnik.
- Izravnava obremenitve - MongoDB uporablja koncept ostrenja za horizontalno lestvico z razdelitvijo podatkov v več primerkov MongoDB. MongoDB lahko poganja več strežnikov, uravnoteži obremenitev in / ali podvaja podatke, da sistem obdrži in deluje v primeru okvare strojne opreme.
Modeliranje podatkov v MongoDB
Kot smo videli iz poglavja Uvod, imajo podatki v MongoDB prilagodljivo shemo. Za razliko od baz podatkov SQL, kjer morate pred vstavljanjem podatkov imeti deklarirano shemo tabele, zbirke MongoDB ne uveljavljajo strukture dokumentov. Zaradi te prilagodljivosti je MongoDB tako močan.
Pri modeliranju podatkov v Mongu upoštevajte naslednje
- Kakšne so potrebe aplikacije - Oglejte si poslovne potrebe aplikacije in si oglejte, kateri podatki in vrsta podatkov so potrebni za aplikacijo. Na podlagi tega zagotovite, da se o strukturi dokumenta ustrezno odloča.
- Kaj so vzorci iskanja podatkov - če predvidevate veliko uporabo poizvedb, razmislite o uporabi indeksov v vašem podatkovnem modelu za izboljšanje učinkovitosti poizvedb.
- Ali se v bazo podatkov pogosto dogajajo vstavitve, posodobitve in odstranitve? Ponovno razmislite o uporabi indeksov ali vključite ostrenje, če je to potrebno v načrtu za modeliranje podatkov, da izboljšate učinkovitost celotnega okolja MongoDB.
Razlika med MongoDB in RDBMS
Spodaj je nekaj ključnih izraznih razlik med MongoDB in RDBMS
RDBMS | MongoDB | Razlika |
---|---|---|
Tabela | Zbirka | V RDBMS tabela vsebuje stolpce in vrstice, ki se uporabljajo za shranjevanje podatkov, medtem ko je v MongoDB ta ista struktura znana kot zbirka. Zbirka vsebuje dokumente, ki pa vsebujejo polja, ki pa so pari ključ / vrednost. |
Vrstica | Dokument | V RDBMS vrstica predstavlja en sam, implicitno strukturiran podatkovni element v tabeli. V MongoDB so podatki shranjeni v dokumentih. |
Stolpec | Polje | V RDBMS stolpec označuje nabor podatkovnih vrednosti. Ti v MongoDB so znani kot Fields. |
Pridruži se | Vdelani dokumenti | V RDBMS se podatki včasih razširijo po različnih tabelah in, da se prikaže celoten pogled na vse podatke, se včasih oblikuje združevanje med tabelami za pridobitev podatkov. V MongoDB so podatki običajno shranjeni v eni zbirki, vendar ločeni z uporabo vdelanih dokumentov. Torej v MongoDB ni koncepta pridružitev. |
Poleg izrazov razlike je spodaj prikazanih še nekaj drugih razlik
- Relacijske zbirke podatkov so znane po uveljavljanju integritete podatkov. V MongoDB to ni izrecna zahteva.
- RDBMS zahteva, da se podatki najprej normalizirajo, tako da lahko preprečijo osirotele zapise in podvajanja. Normaliziranje podatkov ima nato zahtevo po več tabelah, kar bo imelo za posledico več združitev tabel in s tem več ključev in indeksov.
Ko začnejo baze podatkov naraščati, lahko uspešnost začne postajati problem. To spet ni izrecna zahteva v MongoDB. MongoDB je prilagodljiv in ne potrebuje najprej normalizacije podatkov.