Mi a MongoDB? Bevezetés, Architecture, jellemzők és példa

Mi a MongoDB?

MongoDB egy dokumentum-orientált NoSQL adatbázis, amelyet nagy mennyiségű adattárolásra használnak. A táblák és sorok használata helyett, mint a hagyományos relációs adatbázisokban, MongoDB gyűjteményeket és dokumentumokat használ. A dokumentumok kulcs-érték párokból állnak, amelyek az adatok alapegységei MongoDB. A gyűjtemények dokumentum- és funkciókészleteket tartalmaznak, amelyek a relációs adatbázistáblák megfelelői. MongoDB egy adatbázis, amely a 2000-es évek közepe táján került napvilágra.

MongoDB Jellemzők

  1. Minden adatbázis gyűjteményeket tartalmaz, amelyek viszont dokumentumokat tartalmaznak. Minden dokumentum eltérő lehet, változó számú mezővel. Az egyes dokumentumok mérete és tartalma eltérhet egymástól.
  2. A dokumentum szerkezete jobban összhangban van azzal, ahogy a fejlesztők az osztályaikat és objektumaikat a megfelelő programozási nyelvükön építik fel. A fejlesztők gyakran mondják, hogy osztályaik nem sorok és oszlopok, hanem világos szerkezetük van kulcs-érték párokkal.
  3. A sorok (vagy dokumentumok a behívás szerint MongoDB) nem szükséges, hogy előzetesen sémát definiáljon. Ehelyett a mezőket menet közben is létrehozhatja.
  4. A belül elérhető adatmodell MongoDB lehetővé teszi a hierarchikus kapcsolatok ábrázolását, a tömbök és egyéb bonyolultabb struktúrák egyszerűbb tárolását.
  5. Skálázhatóság – A MongoDB a környezet nagyon skálázható. Világszerte a vállalatok fürtöket határoztak meg, amelyek némelyike ​​több mint 100 csomópontot futtat, mintegy millió dokumentummal az adatbázisban.

MongoDB Példa

Az alábbi példa bemutatja, hogyan lehet egy dokumentumot modellezni MongoDB.

  1. Az _id mezőt hozzáadja MongoDB a gyűjteményben lévő dokumentum egyedi azonosítására.
  2. Megjegyzendő, hogy a rendelési adatok (OrderID, Product és Quantity ), amelyek az RDBMS-ben általában egy külön táblában kerülnek tárolásra, míg a MongoDB valójában beágyazott dokumentumként tárolódik magában a gyűjteményben. Ez az egyik legfontosabb különbség az adatok modellezésében MongoDB.

MongoDB Példa

Kulcsfontosságú összetevői MongoDB Architectúra

Az alábbiakban felsorolunk néhány általánosan használt kifejezést MongoDB

  1. _id – Ez a mező mindenben kötelező MongoDB dokumentum. Az _id mező egyedi értéket jelent a MongoDB dokumentum. Az _id mező olyan, mint a dokumentum elsődleges kulcsa. Ha új dokumentumot hoz létre _id mező nélkül, MongoDB automatikusan létrehozza a mezőt. Így például, ha látjuk a fenti ügyféltáblázat példáját, a Mongo DB egy 24 számjegyű egyedi azonosítót ad a gyűjtemény minden dokumentumához.
_Id Ügyfél-azonosító Ügyfél neve Rendelés azonosító
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Gyűjtemény – Ez egy csoportosítás MongoDB dokumentumokat. A gyűjtemény egy olyan táblázat megfelelője, amely bármely más RDMS-ben, például Oracle vagy MS SQL. Egy gyűjtemény egyetlen adatbázison belül létezik. Amint a bevezetőből látható, a gyűjtemények nem kényszerítenek ki semmilyen struktúrát.
  2. Kurzor – Ez egy mutató a lekérdezés eredményhalmazára. Az ügyfelek a kurzor segítségével iterálhatják az eredményeket.
  3. adatbázis - Ez egy tároló a gyűjteményekhez, mint az RDMS-ben, ahol ez egy tároló táblák számára. Minden adatbázis megkapja a saját fájlkészletét a fájlrendszerben. A MongoDB szerver több adatbázist is tárolhat.
  4. dokumentum – Egy rekord a MongoDB a gyűjteményt alapvetően dokumentumnak nevezik. A dokumentum viszont mezőnévből és értékekből fog állni.
  5. Mező – Név-érték pár egy dokumentumban. Egy dokumentum nulla vagy több mezőt tartalmaz. A mezők analógok a relációs adatbázisok oszlopaival. A következő diagram példát mutat a kulcsértékpárokkal rendelkező mezőkre. Tehát az alábbi példában a CustomerID és a 11 a dokumentumban meghatározott kulcsértékpárok egyike.

Kulcsfontosságú összetevői MongoDB Architectúra

  1. JSON – Ezt úgy ismerik JavaForgatókönyv Objektumjelölés. Ez egy ember által olvasható, egyszerű szöveges formátum a strukturált adatok kifejezésére. A JSON jelenleg számos programozási nyelven támogatott.

Csak egy gyors megjegyzés az _id mező és a normál gyűjtőmező közötti lényeges különbséghez. Az _id mező a gyűjteményben lévő dokumentumok egyedi azonosítására szolgál, és automatikusan hozzáadja MongoDB amikor a gyűjtemény létrejön.

Miért használja MongoDB?

Az alábbiakban felsoroljuk azokat az okokat, amelyek miatt érdemes elkezdeni használni MongoDB

  1. Dokumentumorientált – Mivel MongoDB egy olyan NoSQL típusú adatbázis, ahelyett, hogy relációs típusú formátumban lenne az adatok, dokumentumokban tárolja az adatokat. Ez teszi MongoDB nagyon rugalmas és alkalmazkodik a valós üzleti világ helyzetéhez és követelményeihez.
  2. Ad hoc lekérdezések – MongoDB támogatja a mezők, tartomány lekérdezések és reguláris kifejezések szerinti keresést. Lekérdezéseket lehet végrehajtani bizonyos mezők visszaadására a dokumentumokon belül.
  3. Indexelés – Indexek hozhatók létre a belső keresések teljesítményének javítására MongoDB. Bármely mező a MongoDB a dokumentum indexelhető.
  4. Replikáció – MongoDB magas rendelkezésre állást biztosít a replikakészletekkel. A replikakészlet két vagy több mongo DB példányból áll. A replikakészlet minden tagja bármikor eljárhat az elsődleges vagy másodlagos replika szerepében. Az elsődleges replika a fő szerver, amely együttműködik az ügyféllel, és végrehajtja az összes olvasási/írási műveletet. A másodlagos replikák egy másolatot tartanak fenn az elsődleges adatokról a beépített replikáció használatával. Ha egy elsődleges replika meghibásodik, a replikakészlet automatikusan átvált a másodlagosra, majd az lesz az elsődleges kiszolgáló.
  5. Terhelés elosztás - MongoDB a felosztás fogalmát használja a vízszintes méretezéshez az adatok több részre való felosztásával MongoDB példányok. MongoDB több kiszolgálón is futhat, kiegyenlítve a terhelést és/vagy megkettőzve az adatokat, hogy a rendszer folyamatosan működjön hardverhiba esetén.

Adatmodellezés be MongoDB

Amint a Bevezetés részből láthattuk, az adatok ben MongoDB rugalmas sémával rendelkezik. Ellentétben a be SQL adatbázisok, ahol az adatok beszúrása előtt deklarálnia kell egy tábla sémáját, MongoDBgyűjteményei nem kényszerítik ki a dokumentumszerkezetet. Ez a fajta rugalmasság az, ami MongoDB olyan hatalmas.

Az adatok Mongo nyelven történő modellezésekor tartsa szem előtt a következőket

  1. Milyen igényei vannak az alkalmazásnak – Tekintse meg az alkalmazás üzleti igényeit, és nézze meg, milyen adatokra és milyen típusú adatokra van szüksége az alkalmazáshoz. Ez alapján gondoskodjon arról, hogy a dokumentum szerkezete ennek megfelelően döntsön.
  2. Mik azok az adatlekérési minták – Ha erős lekérdezéshasználatot tervez, akkor fontolja meg az indexek használatát az adatmodellben a lekérdezések hatékonyságának javítása érdekében.
  3. Gyakori beszúrások, frissítések és eltávolítások történnek az adatbázisban? Fontolja meg újra az indexek használatát, vagy ha szükséges, építse be a felosztást az adatmodellezési tervbe az általános hatékonyság javítása érdekében. MongoDB környezetben.

A különbség köztük MongoDB & RDBMS

Az alábbiakban bemutatunk néhány kulcsfontosságú különbséget a kifejezések között MongoDB és RDBMS

RDBMS MongoDB Különbség
Táblázat Gyűjtemény In RDBMS, a táblázat azokat az oszlopokat és sorokat tartalmazza, amelyek az adatok tárolására szolgálnak, míg a MongoDB, ugyanezt a szerkezetet gyűjteményként ismerjük. A gyűjtemény dokumentumokat tartalmaz, amelyek viszont mezőket tartalmaznak, amelyek viszont kulcs-érték párok.
Sor dokumentum Az RDBMS-ben a sor egyetlen, implicit módon strukturált adatelemet jelöl egy táblázatban. Ban ben MongoDB, az adatok dokumentumokban tárolódnak.
Oszlop Mező Az RDBMS-ben az oszlop adatértékek halmazát jelöli. Ezek benne MongoDB Fields néven ismertek.
csatlakozik Beágyazott dokumentumok Az RDBMS-ben az adatok néha szét vannak osztva különböző táblák között, és annak érdekében, hogy az összes adatot teljes nézetben lehessen megjeleníteni, néha összekapcsolják a táblákat, hogy megkapják az adatokat. Ban ben MongoDB, az adatokat általában egyetlen gyűjteményben tárolják, de a beágyazott dokumentumok segítségével elválasztják. Tehát nincs fogalma a csatlakozásnak MongoDB.

A kifejezések közötti különbségeken kívül néhány egyéb különbség is látható az alábbiakban

  1. A relációs adatbázisok az adatok integritásának kikényszerítéséről ismertek. Ez nem kifejezett követelmény MongoDB.
  2. Az RDBMS megköveteli, hogy az adatok legyenek normalizált először azért, hogy megakadályozza az árva rekordokat és a duplikációkat. Az adatok normalizálásához több tábla szükséges, ami több táblaillesztést eredményez, így több kulcsra és indexre lesz szükség. Ahogy az adatbázisok növekedni kezdenek, a teljesítmény egyre nagyobb problémát jelenthet. Ez ismét nem kifejezett követelmény MongoDB. MongoDB rugalmas, és nem kell először normalizálni az adatokat.