MongoDB

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

MongoDB je vodeća NoSQL baza podataka.[1] U skladu sa rastućim interesovanjem za alternativne sisteme za upravljanje bazama podataka, koji se razlikuju od tradicionalnih relacionih baza podataka, pojavio se koncept takozvanih NoSQL baza podataka, koje ne koriste SQL za povezivanje, nerelacione su, distribuirane, otvorenog koda i horizontalno skalabilne. Napisana je u C++ jeziku i otvorenog je koda, izdata pod kombinacijom GNU Affero General Public License i Apache License. MongoDB čuva podatke kao JSON dokumente sa dinamičkim šemama. JSON (JavaScript Object Notation) je otvoreni standard zasnovan na tekstu, osmišljen za razmenu podataka koji su pogodni za čitanje ljudima. MongoDB je prihvaćen kao backend softver brojnih značajnih veb-sajtova i servisa, uključujući Craigslist, eBay, Foursquare, SourceForge i New York Times.

MongoDB čini integraciju podataka u mnogim aplikacijama jednostavnijom i brzom. MongoDB je stvoren i podržan od strane kompanije 10gen.

Osnovne karakteristike[уреди]

  • Smeštanje usmereno na dokumenta — JSON dokumenta sa dinamičkim šemama nude jednostavnost i snagu[2]
  • Apsolutna podrška indeksiranju — Indeksiranje bilo kog atributa
  • Replikacija i visoka dostupnost
  • Automatsko skaliranje — Horizontalno skaliranje bez ugrožavanja funkcionalnosti. Horizontalno skaliranje distribuira jedan logički sistem baze podataka izmedju skupa mašina
  • Upiti — Moćni upiti, bazirani na dokumentima
  • Brzi update
  • Mapiranje/Redukovanje — fleksibilna agregacija i obrada podataka
  • GridFS — čuva fajlove bilo koje veličine bez komplikacija. Umesto čuvanja fajla u pojedinačnom dokumentu, GridFS deli fajl na delove, ili blokove i čuva svaki od tih blokova kao poseban dokument[3]
  • Online shell pruža mogućnost isprobavanja MongoDB bez instalacije
  • Ad hoc upiti — MongoDB podržava pretragu po polju, upite po opsegu i pretrage po regularnim izrazima. Upiti mogu da vrate odredjena polja dokumenta, kao i da obuhvate korisnički definisane JavaScript funkcije
  • Izvršavanje JavaScript koda na strani servera — JavaScript se moze koristiti u upitima, agregatnim funkcijama (kao sto je MapReduce) i da se uputi direktno bazi podataka za izvršavanje

Jezička podrška[уреди]

MongoDB ima zvanične drajvere za razne popularne programske jezike i razvojna okruženja. Postoje i mnogi nezvanični drajveri, podržani od strane otvorenih zajednica, za gotovo sve programske jezike i različita okruženja.

Korišćenje[уреди]

MongoDB je baza podataka za opštu upotrebu. Postoji mnogo projekata koji danas koriste MongoDB. Njena dinamička šema i objektno-orijentisana struktura, čine je pravim izborom za analitiku u realnom vremenu, kao i za e-komerc, mobilne aplikacije, arhiviranje i slično. Poznati slučajevi korišćenja MongoDB obuhvataju “big data” podatke, upravljanje sadržajem, mobilnu i društvenu infrastrukturu i mnoge druge. Takodje, pojavljuju se izazovi za korišćenje MongoDB za Business Intelligence modele.

Kritike[уреди]

Sve do novembra 2012. godine, MongoDB standardni model vraćao je podatke koji su bili upisani tek pošto je unet tekući red čekanja od strane klijenta, što je značilo da osnovno podešavanje nije bilo dovoljno stabilno u slučaju pucanja na strani klijenta. Promena standardnog modela u sigurniji, izazvala je brojne zastoje u performansama, a i dalje ostaju brige da li sigurniji modeli i dalje čine podatke ranjivim u slučaju otkazivanja pojedinačne mašine, iako se većina ovih briga odnosi na starije verzije MongoDB (2.0 i 2.2).

MongoDB koristi "zaključavanje" čitaoci-pisac koja omogućava konkurentan pristup bazi podataka za čitanje, ali pisanje je omogućeno samo za jednu operaciju. Postoje i kritike koje se odnose na ograničenja MongoDB kada se koristi na 32-bitnim sistemima, što je u nekim slučajevima posledica nasleđenih memorijskih ograničenja. MongoDB preporučuje 64-bitne sisteme i zahteva od korisnika da obezbede dovoljno RAM memorije za rad.

Takođe, MongoDB obezbeđuje veoma ograničenu podršku za sortiranje UTF-8 enkodirane string podatke, što stvara ozbiljan problem prilikom smeštanja ne-engleskog teksta.

MongoDB World[уреди]

MongoDB World je godišnja konferencija programera koju organizuje MongoDB, Inc.[4]

Vidi još[уреди]

  • NoSQL koncept za upravljanje bazama podataka

Reference[уреди]

  1. ^ "DB-Engines ranking"
  2. ^ MongoDB.com
  3. ^ GridFS - MongoDB Manual
  4. ^ MongoDB World

Literatura[уреди]

  • Chodorow, Kristina; Dirolf, Michael (2010), MongoDB: The Definitive Guide (1st ed.), O'Reilly Media;
  • Pirtle, Mitch (2011), MongoDB for Web Development (1st ed.), Addison-Wesley Professional;
  • Hawkins, Tim; Plugge, Eelco; Membrey, Peter (26. 9. 2010), The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing (1st изд.), Apress, стр. 350, ISBN 978-1-4302-3051-9 

Spoljašnje veze[уреди]