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.

Izdanja

MongoDB Community Server

MongoDB Community Edition je besplatan i dostupan za for Windows, Linux i macOS operativne sisteme.[4]

MongoDB Enterprise Server

MongoDB Enterprise Server je komercijalno izdanje MongoDB-a i dostupno je kao deo pretplate za MongoDB Enterprise Advanced.[5]

MongoDB Atlas

MongoDB je takođe dostupan kao potpuno upravljana usluga na zahtev. MongoDB Atlas radi na platformama AWS, Microsoft Azure i Google Cloud.[6]

MongoDB je 10. marta 2022. upozorio svoje korisnike u Rusiji i Belorusiji da će njihovi podaci pohranjeni na platformi MongoDB Atlas biti uništeni kao rezultat američkih sankcija u vezi sa rusko-ukrajinskim ratom.[7]

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.[8]

Vidi još

  • NoSQL koncept za upravljanje bazama podataka

Reference

  1. ^ "DB-Engines ranking"
  2. ^ MongoDB.com
  3. ^ GridFS - MongoDB Manual
  4. ^ „MongoDB Download Center”. MongoDB (на језику: енглески). Архивирано из оригинала 14. 8. 2018. г. Приступљено 14. 8. 2018. 
  5. ^ „MongoDB Download Center”. MongoDB (na jeziku: енглески). Arhivirano iz originala 14. 8. 2018. g. Pristupljeno 14. 8. 2018. 
  6. ^ „MongoDB launches Global Clusters to put geographic data control within reach of anyone”. MongoDB (na jeziku: енглески). Arhivirano iz originala 27. 6. 2018. g. Pristupljeno 27. 6. 2018. 
  7. ^ „MongoDB will destroy all data of Russians and Belarusians”. 
  8. ^ „MongoDB World”. Архивирано из оригинала 01. 08. 2015. г. Приступљено 06. 04. 2020. 

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