Mikä on MongoDB? Johdanto, Architecture, ominaisuudet ja esimerkki
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ö MongoDB. Kokoelmat sisältävät asiakirjoja ja funktioita, jotka vastaavat relaatiotietokantataulukoita. MongoDB on tietokanta, joka tuli julkisuuteen 2000-luvun puolivälissä.
MongoDB Ominaisuudet
- Jokainen tietokanta sisältää kokoelmia, jotka puolestaan sisältävät asiakirjoja. Jokainen asiakirja voi olla erilainen vaihteleva määrä kenttiä. Kunkin asiakirjan koko ja sisältö voivat olla erilaisia.
- 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 olla etukäteen määriteltyä skeemaa. Sen sijaan kentät voidaan luoda lennossa.
- Tietomalli saatavilla sisällä MongoDB avulla voit esittää hierarkkisia suhteita, tallentaa taulukoita ja muita monimutkaisempia rakenteita helpommin.
- Skaalautuvuus – MongoDB ympäristöt ovat hyvin skaalautuvia. Yritykset ympäri maailmaa ovat määrittäneet klustereita, joista joissakin on yli 100 solmua ja noin miljoonia asiakirjoja tietokannassa
MongoDB esimerkki
Alla oleva esimerkki näyttää, kuinka asiakirja voidaan mallintaa MongoDB.
- _id-kentän lisää MongoDB tunnistaaksesi kokoelman asiakirjan yksilöllisesti.
- Huomaa, että tilaustiedot (tilaustunnus, tuote ja määrä), jotka RDBMS:ssä tallennetaan tavallisesti erilliseen taulukkoon, kun taas MongoDB se on itse asiassa tallennettu upotettuna asiakirjana itse kokoelmaan. Tämä on yksi tärkeimmistä eroista tietojen mallintamisessa 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 esimerkin yllä olevasta asiakastaulukosta, Mongo DB lisää 24-numeroisen yksilöllisen tunnisteen jokaiseen kokoelman asiakirjaan.
_Id | Asiakas ID | Asiakkaan nimi | Tilausnumero |
---|---|---|---|
563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Kokoelma – Tämä on ryhmittely MongoDB asiakirjoja. Kokoelma vastaa taulukkoa, joka luodaan missä tahansa muussa RDMS:ssä, kuten Oracle tai MS SQL. Kokoelma on olemassa yhdessä tietokannassa. Kuten johdannosta nähdään, 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 kontti, kuten RDMS:ssä, jossa se on pöytäkontti. Jokainen tietokanta saa omat tiedostot tiedostojärjestelmään. A MongoDB palvelin voi tallentaa useita tietokantoja.
- Asiakirja – Ennätys vuonna a MongoDB kokoelmaa kutsutaan periaatteessa asiakirjaksi. Dokumentti puolestaan koostuu kentän nimestä ja arvoista.
- Kenttä – Nimi-arvo-pari asiakirjassa. Asiakirjassa on nolla tai useampia kenttiä. Kentät ovat analogisia relaatiotietokantojen sarakkeiden kanssa. Seuraavassa kaaviossa on esimerkki kentistä avainarvoparien kanssa. Joten alla olevassa esimerkissä Asiakastunnus ja 11 ovat yksi dokumentissa määritellyistä avainarvopareista.
- 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 sinun pitäisi aloittaa käyttö MongoDB
- Asiakirjasuuntautunut – vuodesta MongoDB on NoSQL tyyppitietokanta, sen sijaan, että tiedot olisivat relaatiotyyppisessä muodossa, se tallentaa tiedot asiakirjoihin. Tämä tekee MongoDB erittäin joustava ja mukautuva todelliseen yritysmaailman tilanteeseen ja vaatimuksiin.
- Ad hoc -kyselyt - MongoDB tukee kenttähakua, aluekyselyitä ja säännöllisten lausekkeiden hakuja. Asiakirjoissa voidaan palauttaa tiettyjä kenttiä koskevia kyselyitä.
- Indeksointi – Indeksejä voidaan luoda parantamaan sisäisten hakujen suorituskykyä MongoDB. Mikä tahansa kenttä kohdassa a MongoDB asiakirja voidaan indeksoida.
- Replikointi - MongoDB voi tarjota korkean käytettävyyden kopiosarjoilla. Replikajoukko koostuu kahdesta tai useammasta mongo DB -esiintymästä. 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 tiedoista sisäänrakennetun replikoinnin avulla. Kun ensisijainen replika epäonnistuu, replikajoukko siirtyy automaattisesti toissijaiseen ja siitä tulee 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 olemme nähneet Johdanto-osiosta, tiedot 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 Mongossa, pidä seuraavat asiat mielessä
- Mitkä ovat sovelluksen tarpeet – Katso sovelluksen liiketoimintatarpeita ja katso, mitä tietoja ja minkä tyyppisiä tietoja sovellus tarvitsee. Varmista tämän perusteella, että asiakirjan rakenne päätetään vastaavasti.
- Mitä ovat tiedonhakumallit – Jos ennakoit raskaan kyselyn käytön, harkitse indeksien käyttöä tietomallissasi kyselyiden tehokkuuden parantamiseksi.
- Tapahtuuko tietokannassa usein lisäyksiä, päivityksiä ja poistoja? Harkitse indeksien käyttöä uudelleen tai sisällytä sharding tarvittaessa tietomallinnuksesi tehokkuuden parantamiseksi. 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, tämä sama rakenne tunnetaan kokoelmana. 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 nimellä Fields. |
Liitosten | Upotetut asiakirjat | RDBMS:ssä tiedot hajautetaan joskus useisiin taulukoihin, ja jotta kaikista tiedoista saataisiin täydellinen näkymä, taulukoiden välillä muodostetaan joskus liitos tietojen saamiseksi. Sisään MongoDB, tiedot tallennetaan yleensä yhteen kokoelmaan, mutta ne erotetaan käyttämällä upotettuja asiakirjoja. Joten ei ole käsitettä liittymisestä MongoDB. |
Termien erojen lisäksi alla on esitetty muutamia muita eroja
- 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. Tietojen normalisointi vaatii sitten enemmän taulukoita, mikä johtaa useampaan taulukkoliittymiseen, mikä vaatii enemmän avaimia ja indeksejä. Tietokantojen alkaessa kasvaa, suorituskyky voi alkaa tulla ongelmaksi. Jälleen tämä ei ole selkeä vaatimus MongoDB. MongoDB on joustava, eikä sitä tarvitse ensin normalisoida.