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
- 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 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.
- 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.
- 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.
- 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.
- Az _id mezőt hozzáadja MongoDB a gyűjteményben lévő dokumentum egyedi azonosítására.
- 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.
Kulcsfontosságú összetevői MongoDB Architectúra
Az alábbiakban felsorolunk néhány általánosan használt kifejezést MongoDB
- _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 |
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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ő.
- 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ó.
- 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
- 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.
- 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.
- 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
- 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.
- 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.