Mikä on MongoDB? Architecture, ominaisuudet ja esimerkki
⚡ Älykäs yhteenveto
MongoDB on dokumenttipohjainen NoSQL-tietokanta, jota käytetään suurten tietomäärien tallennukseen ja joka käyttää kokoelmia ja dokumentteja taulukoiden ja rivien sijaan. Tämä resurssi selittää MongoDB ominaisuudet, esimerkkidokumentti, keskeiset arkkitehtuurikomponentit, käyttötarkoitukset, datamallinnus ja miten se eroaa relaatiotietokannasta.

Mikä on MongoDB?
MongoDB on dokumenttisuuntautunut NoSQL-tietokanta, jota käytetään suuren volyymin tietojen tallentamiseen. Sen sijaan, että käyttäisit taulukoita ja rivejä kuten perinteisissä relaatiotietokantoissa, MongoDB käyttää kokoelmia ja asiakirjoja. Asiakirjat koostuvat avain-arvo-pareista, jotka ovat tietojen perusyksikkö MongoDBKokoelmat sisältävät joukkoja dokumentteja ja funktioita, mikä vastaa relaatiotietokannan taulukoita. MongoDB on tietokanta, joka tuli julkisuuteen 2000-luvun puolivälissä.
MongoDB Ominaisuudet
- Jokainen tietokanta sisältää kokoelmia, jotka puolestaan sisältävät dokumentteja. Jokainen dokumentti voi olla erilainen ja siinä voi olla vaihteleva määrä kenttiä. Kunkin dokumentin koko ja sisältö voivat vaihdella toisistaan.
- Asiakirjan rakenne vastaa paremmin sitä, kuinka kehittäjät rakentavat luokkansa ja objektinsa vastaavilla ohjelmointikielillään. Kehittäjät sanovat usein, että heidän luokkansa eivät ole rivejä ja sarakkeita, vaan niillä on selkeä rakenne avain-arvoparien kanssa.
- Rivit (tai asiakirjat kutsutulla tavalla MongoDB) ei tarvitse määrittää kaavaa etukäteen. Sen sijaan kentät voidaan luoda lennossa.
- Tietomalli saatavilla sisällä MongoDB mahdollistaa hierarkkisten suhteiden esittämisen, taulukoiden tallentamisen ja muiden monimutkaisempien rakenteiden tallentamisen helpommin.
- skaalautuvuus - MongoDB Ympäristöt ovat erittäin skaalautuvia. Yrityksillä ympäri maailmaa on määriteltyjä klustereita, ja jotkut niistä käyttävät yli sataa solmua ja noin miljoonia dokumentteja tietokannassa.
MongoDB esimerkki
Alla oleva esimerkki näyttää, kuinka asiakirja voidaan mallintaa MongoDB.
- _id-kentän lisää MongoDB tunnistaaksesi kokoelman asiakirjan yksilöllisesti.
- Huomaathan, että tilaustiedot (tilaustunnus, tuote ja määrä), jotka RDBMS:ssä normaalisti tallennetaan erilliseen taulukkoon, tallennetaan itse asiassa upotettuna dokumenttina itse kokoelmaan MongoDBTämä on yksi keskeisistä eroista siinä, miten dataa mallinnetaan MongoDB.
Tärkeimmät komponentit MongoDB Archirakenne
Alla on muutamia yleisiä termejä, joita käytetään MongoDB:
- _ID – Tämä on pakollinen kenttä jokaisessa MongoDB asiakirja. _id-kenttä edustaa yksilöllistä arvoa MongoDB asiakirja. _id-kenttä on kuin asiakirjan ensisijainen avain. Jos luot uuden asiakirjan ilman _id-kenttää, MongoDB luo kentän automaattisesti. Jos esimerkiksi näemme yllä olevan asiakastaulukon esimerkin, MongoDB lisää 24-numeroisen yksilöllisen tunnisteen jokaiseen kokoelman dokumenttiin.
| _Id | Asiakas ID | Asiakkaan nimi | Tilausnumero |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Kokoelma – Tämä on ryhmäping of MongoDB dokumentteja. Kokoelma vastaa taulukkoa, joka on luotu missä tahansa muussa RDBMS:ssä, kuten Oracle tai MS SQL. Kokoelma sijaitsee yhden tietokannan sisällä. Kuten johdannosta käy ilmi, kokoelmat eivät pakota minkäänlaista rakennetta.
- Kohdistin – Tämä on osoitin kyselyn tulosjoukkoon. Asiakkaat voivat iteroida kohdistimen kautta hakeakseen tuloksia.
- tietokanta – Tämä on kokoelmien säilö, kuten RDBMS:ssä, jossa se on taulukoiden säilö. Jokainen tietokanta saa oman tiedostojoukkonsa tiedostojärjestelmään. A MongoDB palvelin voi tallentaa useita tietokantoja.
- Asiakirja – Ennätys vuonna a MongoDB Kokoelmaa kutsutaan pohjimmiltaan dokumentiksi. Dokumentti puolestaan koostuu kenttien nimistä ja arvoista.
- Kenttä – Nimi-arvo-pari dokumentissa. Dokumentissa on nolla tai useampia kenttiä. Kentät ovat analogisia relaatiotietokantojen sarakkeiden kanssa. Seuraava kaavio näyttää esimerkin kentistä, joissa on avain-arvo-pareja. Alla olevassa esimerkissä asiakastunnus ja 11 ovat siis yksi dokumentissa määritellyistä avain-arvo-pareista.
- JSON – Tämä tunnetaan nimellä JavaKäsikirjoitus Objektin merkintä. Tämä on ihmisen luettavissa oleva pelkkä tekstimuoto strukturoidun tiedon ilmaisemiseen. JSON on tällä hetkellä tuettu monilla ohjelmointikielillä.
Vain lyhyt huomautus _id-kentän ja normaalin kokoelmakentän välisestä keskeisestä erosta. _id-kenttää käytetään yksilöimään kokoelman asiakirjat, ja sen lisää automaattisesti MongoDB kun kokoelma on luotu.
Miksi käyttää MongoDB?
Alla on muutamia syitä, miksi kannattaa alkaa käyttää MongoDB:
- Asiakirjasuuntautunut - Siitä asti kun MongoDB on NoSQL tyyppitietokanta, sen sijaan, että tiedot olisivat relaatiotyyppisessä muodossa, se tallentaa tiedot asiakirjoihin. Tämä tekee MongoDB erittäin joustava ja mukautuu todellisiin liike-elämän tilanteisiin ja vaatimuksiin.
- Ad hoc -kyselyt - MongoDB tukee kenttähakua, aluekyselyitä ja säännöllisten lausekkeiden hakuja. Asiakirjoissa voidaan palauttaa tiettyjä kenttiä koskevia kyselyitä.
- Indeksointi – Hakujen suorituskyvyn parantamiseksi voidaan luoda indeksejä MongoDB. Mikä tahansa kenttä kohdassa a MongoDB asiakirja voidaan indeksoida.
- replikointi - MongoDB voi tarjota korkean käytettävyyden replikasarjojen avulla. Replikasarja koostuu kahdesta tai useammasta MongoDB esiintymät. Jokainen replikajoukon jäsen voi toimia ensisijaisen tai toissijaisen replikan roolissa milloin tahansa. Ensisijainen replika on pääpalvelin, joka on vuorovaikutuksessa asiakkaan kanssa ja suorittaa kaikki luku-/kirjoitustoiminnot. Toissijaiset replikat ylläpitävät kopiota ensisijaisen replikan tiedoista sisäänrakennetun replikoinnin avulla. Kun ensisijainen replika vikaantuu, replikajoukko vaihtaa automaattisesti toissijaiseen replikaan, ja siitä tulee sitten ensisijainen palvelin.
- Kuormituksen tasapainoittaminen - MongoDB käyttää jakamisen käsitettä vaakasuoraan skaalaamiseen jakamalla tiedot useisiin MongoDB tapauksissa. MongoDB voi toimia useiden palvelimien yli, tasapainottaa kuormitusta ja/tai monistaa tietoja pitääkseen järjestelmän käynnissä laitteistovian sattuessa.
Tietojen mallinnus sisään MongoDB
Kuten johdanto-osiosta olemme nähneet, tiedot kohdassa MongoDB on joustava malli. Toisin kuin sisällä SQL tietokannat, joissa taulukon skeema on ilmoitettava ennen tietojen lisäämistä, MongoDBkokoelmat eivät pakota asiakirjarakennetta. Tällainen joustavuus on mitä tekee MongoDB niin voimakas.
Kun mallinnat tietoja MongoDB, pidä seuraavat asiat mielessä:
- Mitkä ovat sovelluksen tarpeet – Tarkastele sovelluksen liiketoimintatarpeita ja selvitä, mitä tietoja ja minkä tyyppisiä tietoja sovellus tarvitsee. Tämän perusteella varmista, että dokumentin rakenne päätetään vastaavasti.
- Mitä ovat tiedonhakumallit – Jos ennakoit kyselyiden käyttöä paljon, harkitse indeksien käyttöä tietomallissasi kyselyiden tehokkuuden parantamiseksi.
- Tehdäänkö tietokantaan usein lisäyksiä, päivityksiä ja poistoja? Harkitse indeksien käyttöä uudelleen tai sisällytä tarvittaessa sirpalointi tietomallinnussuunnitteluusi parantaaksesi kokonaisvaltaista tehokkuuttasi. MongoDB ympäristöön.
Erotus MongoDB & RDBMS
Alla on joitain keskeisiä termien eroja MongoDB ja RDBMS:
| RDBMS | MongoDB | Ero |
|---|---|---|
| Pöytä | Kokoelma | In RDBMS, taulukko sisältää sarakkeet ja rivit, joita käytetään tietojen tallentamiseen, kun taas MongoDB Samaa rakennetta kutsutaan kokoelmaksi. Kokoelma sisältää dokumentteja, jotka puolestaan sisältävät kenttiä, jotka puolestaan ovat avain-arvo-pareja. |
| Rivi | Asiakirja | RDBMS:ssä rivi edustaa yhtä implisiittisesti jäsenneltyä tietokohdetta taulukossa. Sisään MongoDB, tiedot tallennetaan asiakirjoihin. |
| Sarake | Kenttä | RDBMS:ssä sarake tarkoittaa joukkoa tietoarvoja. Nämä sisällä MongoDB tunnetaan kentinä. |
| Liitosten | Upotetut asiakirjat | Rekisteritietojen hallintajärjestelmissä (RDBMS) data on joskus hajautettu useisiin taulukoihin, ja kaikkien tietojen täydellisen näkymän näyttämiseksi taulukoiden välille muodostetaan joskus liitos (join). MongoDB, tiedot tallennetaan normaalisti yhteen kokoelmaan, mutta erotellaan toisistaan upotettujen dokumenttien avulla. Joten liitosten käsitettä ei ole MongoDB. |
Termierojen lisäksi muutamia muita eroja on esitetty alla:
- Relaatiotietokannat tunnetaan tietojen eheyden varmistamisesta. Tämä ei ole selkeä vaatimus MongoDB.
- RDBMS edellyttää, että tiedot ovat normalisoitu ensinnäkin, jotta se voi estää orpotietueet ja kaksoiskappaleet. Datan normalisointi vaatii sitten useampia taulukoita, mikä puolestaan johtaa useampiin taulukkoliitoksiin ja siten vaatii enemmän avaimia ja indeksejä. Tietokantojen kasvaessa suorituskyky voi alkaa olla ongelma. Jälleen kerran, tämä ei ole eksplisiittinen vaatimus MongoDB. MongoDB on joustava, eikä sitä tarvitse ensin normalisoida.


