Mi az a MongoDB? Bevezetés, építészet, jellemzők & Példa

Tartalomjegyzék:

Anonim

Mi az a MongoDB?

A MongoDB egy dokumentum-orientált NoSQL adatbázis, amelyet nagy mennyiségű adattárolásra használnak. Ahelyett, hogy táblázatokat és sorokat használna, mint a hagyományos relációs adatbázisokban, a MongoDB gyűjteményeket és dokumentumokat használ. A dokumentumok kulcs-érték párokból állnak, amelyek a MongoDB alapvető adategységei. A gyűjtemények dokumentumok és függvények készletét tartalmazzák, amelyek megegyeznek a relációs adatbázis táblákkal. A MongoDB egy olyan adatbázis, amely a 2000-es évek közepe táján került napvilágra.

Ebben az oktatóanyagban megtanulja-

  • MongoDB Jellemzők
  • MongoDB példa
  • A MongoDB Architecture legfontosabb elemei
  • Miért érdemes használni a MongoDB-t?
  • Adatmodellezés a MongoDB-ben
  • Különbség a MongoDB és az RDBMS között

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 felépítése jobban megfelel annak, ahogy a fejlesztők az adott programozási nyelvükön elkészítik osztályaikat és objektumaikat. A fejlesztők gyakran mondják, hogy osztályaik nem sorok és oszlopok, hanem egyértelmű felépítésűek, kulcs-érték párokkal.
    3. A soroknak (vagy a MongoDB-ben meghívott dokumentumoknak) nem kell előzetesen meghatározniuk a sémát. Ehelyett a mezőket menet közben lehet létrehozni.
    4. A MongoDB-n belül elérhető adatmodell lehetővé teszi hierarchikus kapcsolatok reprezentálását, tömbök és egyéb összetettebb struktúrák könnyebb tárolását.
  1. Méretezhetőség - A MongoDB környezetek nagyon skálázhatóak. A vállalatok világszerte meghatározták a klasztereket, amelyek közül néhány 100 vagy több csomópontot futtat, és az adatbázisban több millió dokumentum található

MongoDB példa

Az alábbi példa bemutatja, hogyan modellezhető egy dokumentum a MongoDB-ben.

  1. A _id mezőt a MongoDB adta hozzá, hogy egyedileg azonosítsa a dokumentumot a gyűjteményben.
  2. Megjegyezhetjük, hogy a rendelési adatok (OrderID, Product és Quantity), amelyeket az RDBMS rendszerben általában külön táblázatban tárolnak, míg a MongoDB-ben tulajdonképpen beágyazott dokumentumként tárolják magában a gyűjteményben. Ez az egyik legfontosabb különbség az adatok modellezésében a MongoDB-ben.

A MongoDB Architecture legfontosabb elemei

Az alábbiakban bemutatunk néhány, a MongoDB-ben használt általános kifejezést

  1. _id - Ez a mező kötelező minden MongoDB dokumentumban. A _id mező egyedi értéket képvisel a MongoDB dokumentumban. A _id mező olyan, mint a dokumentum elsődleges kulcsa. Ha új dokumentumot hoz létre _id mező nélkül, a MongoDB automatikusan létrehozza a mezőt. Tehát ha például a fenti ügyféltábla példáját látjuk, a Mongo DB egy 24 jegyű egyedi azonosítót ad hozzá a gyűjtemény minden egyes 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 a MongoDB dokumentumok csoportosítása. A gyűjtemény egyenértékű egy olyan táblával, amelyet bármely más RDMS-ben, például az Oracle-ben vagy az MS SQL-ben létrehoznak. A gyűjtemény egyetlen adatbázisban létezik. A bemutatkozásból kitűnik, hogy a gyűjtemények semmiféle struktúrát nem érvényesítenek.
  2. Kurzor - Ez egy mutató a lekérdezés eredményhalmazára. Az ügyfelek a kurzoron keresztül iterálhatnak az eredmények lekérése érdekében.
  3. Adatbázis - Ez egy olyan tárolók tárolója, mint az RDMS-ben, ahol ez egy táblák tárolója. Minden adatbázis saját fájlkészletet kap a fájlrendszeren. A MongoDB szerver több adatbázist is tárolhat.
  4. Dokumentum - A MongoDB gyűjteményben lévő rekordot alapvetően dokumentumnak nevezzük. A dokumentum viszont mezőnévből és értékekből áll.
  5. Mező - Név-érték pár a dokumentumban. A dokumentumnak nulla vagy több mezője van. A mezők analógak a relációs adatbázisok oszlopaira.

    A következő ábra a kulcsértékpárokkal rendelkező mezők példáját mutatja. Tehát az alábbi példában a CustomerID és a 11 az egyik kulcsértékpár, amelyet a dokumentum definiál.

  1. JSON - Ez JavaScript Object Notation néven ismert. 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 rövid megjegyzés a _id mező és a normál gyűjtőmező közötti fő különbségről. A _id mező a gyűjteményben található dokumentumok egyedi azonosítására szolgál, és a MongoDB automatikusan hozzáadja a gyűjtemény létrehozásakor.

Miért érdemes használni a MongoDB-t?

Az alábbiakban felsoroljuk azokat a néhány okot, amelyek miatt el kell kezdeni a MongoDB használatát

  1. Dokumentumorientált - Mivel a MongoDB egy NoSQL típusú adatbázis, ahelyett, hogy relációs típusú formátumú lenne az adat, az adatokat dokumentumokban tárolja. Ez teszi a MongoDB-t nagyon rugalmasá és alkalmazkodóvá a valós üzleti világ helyzetéhez és követelményeihez.
  2. Ad hoc lekérdezések - A MongoDB támogatja a mező, a tartomány lekérdezések és a reguláris kifejezés szerinti keresést. Lekérdezéseket lehet tenni a dokumentumok egyes mezőinek visszaküldésére.
  3. Indexelés - Indexek hozhatók létre a MongoDB-n belüli keresések teljesítményének javítása érdekében. A MongoDB dokumentumban bármely mező indexelhető.
  4. Replikáció - A MongoDB magas rendelkezésre állást tud biztosítani a replika készletekkel. A replikakészlet két vagy több mongo DB példányból áll. Minden másolatkészlet tag bármikor felléphet az elsődleges vagy másodlagos másolat szerepében. Az elsődleges replika a fő szerver, amely kölcsönhatásba lép az ügyféllel, és végrehajtja az összes olvasási / írási műveletet. A másodlagos másolatok az elsődleges adatok másolatát őrzik beépített replikáció segítségével. Ha az elsődleges replika meghiúsul, a replikakészlet automatikusan átvált a másodlagosra, és ez lesz az elsődleges szerver.
  5. Terheléselosztás - A MongoDB a szilánkosítás koncepcióját használja a vízszintes méretezéshez az adatok több MongoDB példányra osztásával. A MongoDB több szerveren is képes futtatni, kiegyensúlyozva a terhelést és / vagy lemásolva az adatokat, hogy hardverhiba esetén a rendszer folyamatosan működőképes maradjon.

Adatmodellezés a MongoDB-ben

Amint azt a Bevezetés szakaszból láthattuk, a MongoDB adatai rugalmas sémával rendelkeznek. Ellentétben az SQL adatbázisokkal, ahol az adatok beszúrása előtt deklarálni kell egy tábla sémáját, a MongoDB gyűjteményei nem érvényesítik a dokumentumstruktúrát. Ez a fajta rugalmasság teszi a MongoDB-t olyan erőteljessé.

Az adatok Mongo-ban történő modellezésénél tartsa szem előtt a következő dolgokat

  1. Melyek az alkalmazás igényei - Nézze meg az alkalmazás üzleti igényeit, és nézze meg, milyen adatok és milyen típusú adatok szükségesek az alkalmazáshoz. Ennek alapján gondoskodjon arról, hogy a dokumentum felépítése ennek megfelelően dőljön el.
  2. Mik azok az adatlekérdezési minták - Ha jelentős lekérdezés-haszná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. Gyakran történnek beillesztések, frissítések és eltávolítások az adatbázisban? Gondolja át az indexek használatát, vagy építse be a szilánkosítást, ha szükséges az adatmodellezési tervben, hogy javítsa az általános MongoDB-környezet hatékonyságát.

Különbség a MongoDB és az RDBMS között

Az alábbiakban bemutatjuk a MongoDB és az RDBMS közötti legfontosabb kifejezésbeli különbségeket

RDBMS MongoDB Különbség
asztal Gyűjtemény Az RDBMS-ben a táblázat az oszlopokat és sorokat tartalmazza, amelyeket az adatok tárolására használnak, míg a MongoDB-ben ugyanez a szerkezet gyűjtemény néven ismert. A gyűjtemény olyan 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 jelent a táblázatban. A MongoDB-ben az adatokat dokumentumokban tárolják.
Oszlop Terület Az RDBMS-ben az oszlop egy adatérték-készletet jelöl. Ezek a MongoDB-ben Fields néven ismertek.
Csatlakozik Beágyazott dokumentumok Az RDBMS-ben az adatok időnként különböző táblákon vannak elosztva, és az összes adat teljes nézetének bemutatása érdekében néha összekapcsolás jön létre táblák között az adatok megszerzéséhez. A MongoDB-ben az adatokat általában egyetlen gyűjteményben tárolják, de beágyazott dokumentumok segítségével különítik el. Tehát a MongoDB-ben nincs fogalom a csatlakozásokról.

A különbségek kifejezéseken kívül az alábbiakban néhány további különbséget mutatunk be

  1. A relációs adatbázisok ismertek az adatok integritásának kikényszerítésére. Ez nem kifejezett követelmény a MongoDB-ben.
  2. Az RDBMS előírja, hogy először normalizálják az adatokat, hogy megakadályozzák az árva rekordokat és a duplikációkat. Az adatok normalizálásához ezután több táblára van szükség, ami több tábla összekapcsolást eredményez, így több kulcsra és indexre van szükség.

    Amint az adatbázisok növekedni kezdenek, a teljesítmény kérdésessé válhat. Ez megint nem kifejezett követelmény a MongoDB-ben. A MongoDB rugalmas, és nem szükséges először az adatok normalizálása.