Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

MongoDB

Z Wikipedie, otevřené encyklopedie
MongoDB
Logo
VývojářMongoDB Inc.
První vydání2009
Aktuální verze8.0.4 (9. prosince 2024)
Operační systémmultiplatformní
Vyvíjeno vC++,JavaScript,C aPython
Typ softwaruNoSQL, dokumentově orientovaná databáze,systém řízení báze dat asource-available software
LicenceSSPL v1 (drivers: Apache license)
Webwww.mongodb.org
Některá data mohou pocházet zdatové položky.

MongoDB (z anglickéhohumongous, českyobrovský) je multiplatformní dokumentová databáze. Řadí se meziNoSQL databáze a místo tradičníchrelačních databází využívajících tabulky používá dokumenty podobné formátuJSON (MongoDB formát nazýváBSON) a dynamické databázové schéma, které umožňuje vytváření a integraci dat pro aplikace jednodušeji a rychleji. Jedná se oopen source software vydaný podGNU Affero General Public License aApache licencemi.

MongoDB byla původně vyvinuta softwarovou společností 10gen (nyníMongoDB Inc.) v listopadu 2007 jako komponenta plánovanéhoplatforma jako služba produktu. V roce 2009 se z projektu stal opensource. 10gen nabízel komerční podporu a další služby.[1] Od té doby bylo MongoDB implementováno jakobackend řešení množstvím velikých stránek a služeb včetně stránekCraiglist,eBay,Foursquare,SourceForge,Viacom aNew York Times. MongoDB je nejpopulárnější NoSQLdatabázový systém.

Licence a podpora

[editovat |editovat zdroj]

MongoDB je k dispozici zdarma pod licencí Server Side Public License (SSPL),[2] do října 2018 bylo dostupné podGNU Affero General Public License.[3] Jazykové ovladače jsou dostupné podApache Licence. Dále MongoDB Inc. nabízí proprietární licence pro MongoDB.[1]

Hlavní funkce

[editovat |editovat zdroj]

Mezi hlavní funkce patří:[4]

Orientace na dokumenty
Místo rozpadu bussiness subjektu do množství relačních struktur, MongoDB může ukládat bussiness subject v minimálním množství dokumentů. Například místo ukládání informace o názvu a autorovi knihy ve dvou relačních strukturách, mohou být název, autor a ostatní informace týkající se knihy v jednom dokumentu s názvem Kniha, který je více intuitivní a často se s ním lépe pracuje.[5]
Neobsahuje schéma
Nepotřebuje a ani nemá definované jednotné schéma. Každý záznam může mít jinou strukturu bez nutnosti/možnosti zahrnout toto do návrhu schématu jak je tomu u relačních databází. Což přináší jednodušší práci při ukládání dat. Na druhou stranu ale databáze nepomáhá validovat a udržovat v datech pořádek - pokud si validaci nenapíšete sami.
Ad hoc dotazy
MongoDB podporuje hledání podle pole, rozsahové dotazy a hledání podle regulárních výrazů. Dotazy mohou vracet specifická pole dokumentu a také obsahovat uživatelsky definovanéJavaScriptové funkce.
Indexace
Jakékoliv pole v MongoDB dokumentu může býtindexované (Indexy v MongoDB jsou koncepčně stejné jako ty vrelačních databázích). Jsou dostupné i sekundární indexy.
Replikace
MongoDB poskytuje vysokou dostupnost s pomocí sady replik (replica sets).[6] Sada replik obsahuje dvě nebo více kopií dat. Každý člen sady replik může kdykoliv zastávat funkci primární nebo sekundární repliky. Primární replika implicitně provádí všechny čtecí a zapisovací operace. Sekundární repliky udržují kopii dat primární repliky s využitím vestavěné replikace. Když primární replika selže, sada replik automaticky provede proces výběru náhrady ze sekundárních replik. Sekundární repliky mohou také provádět čtecí operace, ale data jsou nakonec vždy konzistentní.
Vyvažování zátěže
MongoDB se škáluje horizontálně pomocí shardingu.[7] Uživatel zvolí shard klíč, který rozhodne, jak bude kolekce dat distribuována. Data se dělí na rozsahy (podle shard klíče) a jsou distribuována mezi více shardů. (Shard existuje master s jedním nebo více slave.)
MongoDB může běžet na více serverech a vyvažovat zátěž nebo duplikovat data aby systém dále běžel v případě chyby hardwaru. Automatická konfigurace je jednoduchá na nasazení a nové počítače mohou být přidány při běhu databáze.
Ukládání souborů
MongoDB může být použit jakosouborový systém a tím využít vyvažování zátěže a replikace dat přes více počítačů.
Tato funkce, nazývanáGridFS,[8] je zahrnuta v MongoDB ovladačích a jednoduše dostupná pro vývojové jazyky. MongoDB umožňuje vývojářům využívat funkce pro manipulaci souborů a obsahu. GridFS je například využit v pluginechNGINX[9] alighttpd.[10] Místo ukládání souborů v jednom dokumentu, GridFS soubor rozdělí na více částí (kusů) a každou část uloží jako nezávislý dokument.[11]
V MongoDB systému s více počítači mohou být soubory vícenásobně distribuovány a kopírovány v rámci více počítačů transparentně a tím vytvořit systém, který dokáže vyvažovat zátěž a zvládnout případné chyby.
Agregace
MapReduce na dávkové zpracování dat a agregující operace. Agregační framework umožňuje uživatelům získat stejný druh výsledků jako na který se používáSQL GROUP BY příkaz.
Vykonávání JavaScriptu na straně serveru
JavaScript může být použit v dotazech, agregačních funkcích (jako MapReduce) a být přímo odeslán do databáze, aby se provedl.
Omezené kolekce
MongoDB podporuje kolekce s omezenou velikostí a nazývá je omezené kolekce (capped collections). Tento typ kolekcí udržuje pořadí vložení a pokud je specifikovaní velikost naplněna, chová se jakokruhová fronta.

Nedostatky, úskalí

[editovat |editovat zdroj]

Díky svým vlastnostem má ale i určitá omezení, či nedostatky. Například:

  • Neexistuje podpora pro relace mezi záznamy (inner/left/rig­ht/outer join). Je třeba si dělat ručně.
  • Špatná podpora pro transakce.
  • Neobsahuje pevné schéma, a s tím související validaci.
  • Žádná referenční integrita.
  • Global write lock.
  • Žádná pokročilá správa cache, používá se disková cache z OS.
  • Větší spotřeba místa na HDD kvůli nutné duplicitě.

Jazyková podpora

[editovat |editovat zdroj]

MongoDB oficiálně podporuje velké množství populárních programovacích jazyků a vývojových prostředí.[12] Dále také existuje velké množství neoficiálních a komunitních ovladačů.[13]

Správa

[editovat |editovat zdroj]

Oficiální MongoDB nástroje

[editovat |editovat zdroj]

V MongoDB instalaci jsou k dispozici následující příkazy:

mongo
MongoDB nabízí interaktivníshell nazývanýmongo,[14] který umožňuje vývojářům zobrazovat, vkládat, mazat a aktualizovat data v jejich databázi, ale také získat informace o replikaci, nastavit sharding, vypnout servery, vykonat JavaScript a mnohem více.
Administrativní informace jsou také zpřístupněny přes webové rozhraní.[15] Jedná se o jednoduchou webovou stránku, která poskytuje informace o současném stavu serveru. Implicitně je rozhraní dostupné pod portem o 1000 vyšším než databázový port (28017).
mongostat
mongostat[16] je nástroj příkazové řádky, který zobrazí shrnující informace pro běžící MongoDB instanci: kolik vkládání, aktualizací, mazání, dotazů a příkazů bylo provedeno. Dále také informace o tom, kolik procent času byla databáze zamčena a kolik využívá paměti. Tento nástroj je podobný UNIXovému/LINUXovému nástrojivmstat.
mongotop
mongotop[17] je nástroj příkazové řádky poskytuje možnost sledování kolik času MongoDB instance strávila čtením a zápisem dat. Tento nástroj je podobný UNIXovému/LINUXovému nástrojitop.
mongosniff
mongosniff[18] je nástroj příkazové řádky poskytující nízkoúrovňové sledování aktivit databáze skrze monitorování síťového provozu proudícího do a od MongoDB.

mongosniff vyžadujeLibpcap síťovou knihovnu dostupnou pouze na systémech založených na UNIXu. Multiplatformní alternativa jeWireshark, který podporuje MongoDB síťový protokol.

mongooplog
mongooplog[19] je jednoduchý nástroj, který spojí operace z replikačního oplogu vzdáleného serveru a aplikuje ho na lokální server.
mongofiles
mongofiles[20] nástroj umožňuje manipulovat soubory v MongoDB instanci vGridFS[21] objektech přes příkazovou řádku. Je převážně užitečný jako rozhraní mezi objekty ukládané na souborový systém a GridFS.
mongoimport, mongoexport
mongoimport[22] je nástroj příkazové řádky pro import obsahu z JSON, CSV nebo TSV formátu vytvořenýchmongoexport[23] nebo jako exporty nástrojů třetích stran.
mongodump, mongorestore
mongodump[24] je nástroj příkazové řádky pro vytváření binárních exportů obsahu MongoDB databáze.mongorestore[25] může být použit pro obnovení databáze z mongodump.

Příklady NoSQL databází

[editovat |editovat zdroj]

Odkazy

[editovat |editovat zdroj]

Reference

[editovat |editovat zdroj]
  1. ab10gen embraces what it created, becomes MongoDB Inc. [online]. [cit. 2013-08-27].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  2. Server Side Public License [online]. MongoDB, 2018-09-16 [cit. 2022-05-10].Dostupné online. (anglicky) 
  3. The AGPL [online]. MongoDB Blog, 2009-05-05 [cit. 2019-09-15].Dostupné online. (anglicky) 
  4. MongoDB Developer Manual
  5. Data Modeling for MongoDB.www.technicspub.com [online]. [cit. 2015-04-18].Dostupné v archivu pořízeném dne 2014-09-04. 
  6. Replication - MongoDB Manual v7.0.www.mongodb.com [online]. [cit. 2024-09-07].Dostupné online. (anglicky) 
  7. Sharding - MongoDB Manual v7.0.www.mongodb.com [online]. [cit. 2024-09-07].Dostupné online. (anglicky) 
  8. GridFS [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  9. NGINX plugin for MongoDB source code
  10. lighttpd plugin for MongoDB source code.bitbucket.org [online]. [cit. 2015-04-18].Dostupné v archivu pořízeném z originálu dne 2011-08-07. 
  11. Expertstown - MongoDB overview
  12. MongoDB Drivers and Client Libraries [online]. Mongodb.org [cit. 2013-07-08].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  13. Community Supported Drivers [online]. Mongodb.org [cit. 2014-07-09].Dostupné online. Je zde použita šablona{{Cite web}} označená jako k „pouze dočasnému použití“.
  14. mongo - The Interactive Shell.www.mongodb.org [online]. [cit. 2015-04-18].Dostupné v archivu pořízeném z originálu dne 2012-11-20. 
  15. HTTP Console.www.mongodb.org [online]. [cit. 2015-04-18].Dostupné v archivu pořízeném dne 2013-01-29. 
  16. mongostat [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  17. mongotop [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  18. mongosniff [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  19. MongoDB Package Components - MongoDB Manual v7.0.www.mongodb.com [online]. [cit. 2024-09-07].Dostupné online. (anglicky) 
  20. mongofiles [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  21. GridFS for Self-Managed Deployments - MongoDB Manual v7.0.www.mongodb.com [online]. [cit. 2024-09-07].Dostupné online. (anglicky) 
  22. mongoimport [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  23. mongoexport [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  24. mongodump [online]. MongoDB Manual [cit. 2019-09-15].Dostupné online. (anglicky) 
  25. mongorestore Manual

Literatura

[editovat |editovat zdroj]
  • HOBERMAN, Steve.Data Modeling for MongoDB. 1st. vyd. [s.l.]:Technics Publications, June 1, 2014.ISBN 978-1-935504-70-2. S. 226. Je zde použita šablona{{Citation}} označená jako k „pouze dočasnému použití“.
  • BANKER, Kyle.MongoDB in Action. 1st. vyd. [s.l.]:Manning, March 28, 2011.ISBN 978-1-935182-87-0. S. 375. Je zde použita šablona{{Citation}} označená jako k „pouze dočasnému použití“.
  • CHODOROW, Kristina; DIROLF, Michael.MongoDB: The Definitive Guide. 1st. vyd. [s.l.]:O'Reilly Media, September 23, 2010.ISBN 978-1-4493-8156-1. S. 216. Je zde použita šablona{{Citation}} označená jako k „pouze dočasnému použití“.
  • PIRTLE, Mitch.MongoDB for Web Development. 1st. vyd. [s.l.]:Addison-Wesley Professional, March 3, 2011.ISBN 978-0-321-70533-4. S. 360. Je zde použita šablona{{Citation}} označená jako k „pouze dočasnému použití“.
  • HAWKINS, Tim; PLUGGE, Eelco; MEMBREY, Peter.The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing. 1st. vyd. [s.l.]:Apress, September 26, 2010.ISBN 978-1-4302-3051-9. S. 350. Je zde použita šablona{{Citation}} označená jako k „pouze dočasnému použití“.

Související články

[editovat |editovat zdroj]

Externí odkazy

[editovat |editovat zdroj]
  • Obrázky, zvuky či videa k tématuMongoDB na Wikimedia Commons
Autoritní dataEditovat na Wikidatech
Citováno z „https://cs.wikipedia.org/w/index.php?title=MongoDB&oldid=24222721
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp