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
- 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.
- 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.
- 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.
- 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.
- 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.
- A _id mezőt a MongoDB adta hozzá, hogy egyedileg azonosítsa a dokumentumot a gyűjteményben.
- 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
- _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 |
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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ő.
- 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.
- 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
- 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.
- 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.
- 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
- 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.
- 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.