Mikä on MongoDB?
MongoDB on asiakirjapainotteinen NoSQL-tietokanta, jota käytetään suurten määrien tietojen tallentamiseen. Sen sijaan, että MongoDB käyttäisi taulukoita ja rivejä kuten perinteisissä relaatiotietokannoissa, se käyttää kokoelmia ja asiakirjoja. Asiakirjat koostuvat avainarvopareista, jotka ovat MongoDB: n perusyksikkö. Kokoelmat sisältävät asiakirjasarjoja ja toimintoja, jotka vastaavat relaatiotietokantataulukoita. MongoDB on tietokanta, joka tuli esiin 2000-luvun puolivälissä.
Tässä opetusohjelmassa opit-
- MongoDB-ominaisuudet
- MongoDB-esimerkki
- MongoDB-arkkitehtuurin pääkomponentit
- Miksi käyttää MongoDB: tä
- Tietomallinnus MongoDB: ssä
- Ero MongoDB: n ja RDBMS: n välillä
MongoDB-ominaisuudet
- Jokainen tietokanta sisältää kokoelmia, jotka puolestaan sisältävät asiakirjoja. Jokainen asiakirja voi olla erilainen vaihtelevalla kenttien määrällä. Kunkin asiakirjan koko ja sisältö voivat olla erilaisia.
- Asiakirjarakenne vastaa paremmin sitä, kuinka kehittäjät rakentavat luokkansa ja objektinsa omilla ohjelmointikielillään. Kehittäjät sanovat usein, että heidän luokkansa eivät ole rivejä ja sarakkeita, mutta niillä on selkeä rakenne avainarvopareilla.
- Riveillä (tai asiakirjoilla, joita kutsutaan MongoDB: ssä) ei tarvitse olla mallia määritelty etukäteen. Sen sijaan kentät voidaan luoda lennossa.
- MongoDB: n tietomallin avulla voit edustaa hierarkkisia suhteita, tallentaa taulukoita ja muita monimutkaisempia rakenteita helpommin.
- Skaalautuvuus - MongoDB-ympäristöt ovat erittäin skaalautuvia. Yritykset eri puolilla maailmaa ovat määritelleet klustereita, joista jotkut käyttävät yli 100 solmua ja noin miljoonat asiakirjat tietokannassa
MongoDB-esimerkki
Seuraava esimerkki osoittaa, kuinka asiakirja voidaan mallintaa MongoDB: ssä.
- MongoDB on lisännyt kentän _id yksilöidäkseen kokoelman asiakirjan.
- Huomaa, että tilaustiedot (OrderID, Product ja Quantity), jotka RDBMS: ssä tallennetaan normaalisti erilliseen taulukkoon, kun taas MongoDB: ssä se on tosiasiassa upotettuna asiakirjana itse kokoelmassa. Tämä on yksi tärkeimmistä eroista tietojen mallinnuksessa MongoDB: ssä.
MongoDB-arkkitehtuurin pääkomponentit
Alla on muutamia MongoDB: ssä käytettyjä yleisiä termejä
- _id - Tämä on kenttä, joka vaaditaan jokaisessa MongoDB-asiakirjassa. _Id-kenttä edustaa MongoDB-asiakirjan ainutlaatuista arvoa. _Id-kenttä on kuin asiakirjan ensisijainen avain. Jos luot uuden asiakirjan ilman kenttää _id, MongoDB luo kentän automaattisesti. Joten 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 MongoDB-asiakirjojen ryhmittely. 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 toistaa kohdistimen kautta saadakseen tuloksia.
- Tietokanta - Tämä on säilö kokoelmille, kuten RDMS: ssä, missä se on taulukoiden säilö. Jokainen tietokanta saa omat tiedostosarjansa tiedostojärjestelmään. MongoDB-palvelin voi tallentaa useita tietokantoja.
- Asiakirja - MongoDB-kokoelman tietuetta kutsutaan periaatteessa dokumentiksi. Asiakirja 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.
Seuraava kaavio näyttää esimerkin kentistä, joissa on avainarvopareja. Joten alla olevassa esimerkissä CustomerID ja 11 on yksi asiakirjassa määritetyistä avainarvopareista.
- JSON - Tämä tunnetaan nimellä JavaScript Object Notation. Tämä on ihmisen luettavissa oleva pelkkätekstimuoto strukturoidun datan ilmaisemiseksi. JSON on tällä hetkellä tuettu monilla ohjelmointikielillä.
Vain lyhyt huomautus tärkeimmistä eroista _id-kentän ja normaalin kokoelukentän välillä. _Id-kenttää käytetään yksilöimään kokoelman asiakirjat, ja MongoDB lisää sen automaattisesti, kun kokoelma luodaan.
Miksi käyttää MongoDB: tä?
Alla on muutama syy siihen, miksi MongoDB tulisi aloittaa
- Asiakirjapainotteinen - Koska MongoDB on NoSQL-tyyppinen tietokanta, sen sijaan, että sillä olisi tietoja relaatiotyyppisessä muodossa, se tallentaa tiedot asiakirjoihin. Tämä tekee MongoDB: stä erittäin joustavan ja sopeutuvan todelliseen liike-elämän tilanteeseen ja vaatimuksiin.
- Ad hoc -kyselyt - MongoDB tukee hakua kentän, alueen kyselyjen ja säännöllisten lausekkeiden perusteella. Tietyt kentät voidaan palauttaa asiakirjoissa.
- Indeksointi - Hakemistoja voidaan luoda parantamaan hakujen suorituskykyä MongoDB: ssä. Mikä tahansa MongoDB-asiakirjan kenttä voidaan indeksoida.
- Replikointi - MongoDB voi tarjota korkeaa käytettävyyttä kopiosarjojen kanssa. Replikasarja koostuu kahdesta tai useammasta mongo DB -esiintymästä. Jokainen kopiojoukon jäsen voi toimia ensisijaisen tai toissijaisen kopion roolissa milloin tahansa. Ensisijainen kopio on pääpalvelin, joka on vuorovaikutuksessa asiakkaan kanssa ja suorittaa kaikki luku- / kirjoitusoperaatiot. Toissijaiset kopiot ylläpitävät kopiota ensisijaisen datasta sisäänrakennettua replikointia käyttämällä. Kun ensisijainen kopio epäonnistuu, kopiojoukko vaihtuu automaattisesti toissijaiseksi ja siitä tulee sitten ensisijainen palvelin.
- Kuormituksen tasapainottaminen - MongoDB käyttää sirpaloitumista vaakasuuntaiseen skaalautumiseen jakamalla tiedot useisiin MongoDB-esiintymiin. MongoDB voi ajaa useita palvelimia, tasapainottaen kuormitusta ja / tai kopioimalla tietoja järjestelmän pitämiseksi toiminnassa laitteistovikojen sattuessa.
Tietomallinnus MongoDB: ssä
Kuten olemme havainneet Johdanto-osiosta, MongoDB: n tiedoilla on joustava kaava. Toisin kuin SQL-tietokannoissa, joissa sinulla on oltava taulukon kaava, joka on ilmoitettava ennen tietojen lisäämistä, MongoDB: n kokoelmat eivät pakota asiakirjarakennetta. Tällainen joustavuus tekee MongoDB: stä niin voimakkaan.
Kun mallinnat tietoja Mongossa, pidä seuraavat asiat mielessä
- Mitkä ovat sovelluksen tarpeet - Katso sovelluksen liiketoiminnan tarpeita ja katso, mitä tietoja ja minkä tyyppisiä tietoja sovelluksessa tarvitaan. Tämän perusteella on varmistettava, että asiakirjan rakenteesta päätetään vastaavasti.
- Mitä ovat tiedonhakumallit - Jos ennakoit kysynnän kovan käytön, harkitse hakemistojen käyttöä tietomallissasi kyselyjen tehokkuuden parantamiseksi.
- Tapahtuvatko tietokannassa usein lisäykset, päivitykset ja poistot? Harkitse indeksien käyttöä uudelleen tai sisällytä sirottelu tarvittaessa tietomallinnussuunnitteluusi, jotta voit parantaa MongoDB-ympäristösi tehokkuutta.
Ero MongoDB: n ja RDBMS: n välillä
Alla on joitain keskeisiä termieroja MongoDB: n ja RDBMS: n välillä
RDBMS | MongoDB | Ero |
---|---|---|
Pöytä | Kokoelma | RDBMS: ssä taulukko sisältää sarakkeet ja rivit, joita käytetään tietojen tallentamiseen, kun taas MongoDB: ssä tämä sama rakenne tunnetaan kokoelmana. Kokoelma sisältää asiakirjoja, jotka puolestaan sisältävät kenttiä, jotka puolestaan ovat avainarvopareja. |
Rivi | Asiakirja | RDBMS: ssä rivi edustaa yhtä, implisiittisesti jäsenneltyä taulukkoa. MongoDB: ssä tiedot tallennetaan asiakirjoihin. |
Sarake | Ala | RDBMS: ssä sarake merkitsee joukko data-arvoja. Nämä MongoDB: ssä tunnetaan kenttinä. |
Liittyy | Upotetut asiakirjat | RDBMS: ssä data on joskus jaettu useisiin taulukoihin, ja kaikkien tietojen täydellisen näkymän osoittamiseksi taulukoiden yli muodostetaan joskus liitos tietojen saamiseksi. MongoDB: ssä tiedot tallennetaan yleensä yhteen kokoelmaan, mutta ne erotetaan käyttämällä upotettuja asiakirjoja. Joten MongoDB: ssä ei ole käsitystä liittymistä. |
Eroerojen lisäksi alla on muutama muu ero
- Relaatiotietokannat tunnetaan tietojen eheyden toteuttamisesta. Tämä ei ole nimenomainen vaatimus MongoDB: ssä.
- RDBMS edellyttää, että tiedot normalisoidaan ensin, jotta ne voivat estää orpotietueita ja kopioita. Tietojen normalisoiminen edellyttää sitten useampia taulukoita, mikä johtaa sitten useampiin taulukkoliitäntöihin, mikä vaatii enemmän avaimia ja hakemistoja.
Kun tietokannat alkavat kasvaa, suorituskyvystä voi alkaa tulla ongelma. Jälleen tämä ei ole nimenomainen vaatimus MongoDB: ssä. MongoDB on joustava eikä tarvitse tietojen normalisointia ensin.