otvorenog koda bez SQL-a. NoSQL se koristi kao alternativa tradicionalnim relacionim bazama podataka. NoSQL baze su vrlo korisne za rad sa velikim skupovima distribuiranih podataka. MongoDB je alat koji može upravljati dokumentno orijentisanim informacijama, skladištiti ili prenositi informacije. MongoDB se koristi za skladištenje podataka velikog obima, pomažući organizacijama da skladište velike količine podataka dok i dalje brzo obavljaju operacije. Organizacije takođe koriste MongoDB zbog indeksiranja, balansiranja opterećenja, agregacije, izvršavanja JavaScript-a na serverskoj strani i drugih funkcija.
Umjesto korišćenja tabela i redova kao u relacionim bazama podataka,
kao NoSQL baza podataka, arhitektura MongoDB-a se sastoji od kolekcija i dokumenata. Dokumenti se sastoje od parova ključ-vrijednost -- osnovna jedinica podataka u MongoDB-u. Kolekcije sadrže skupove dokumenata. MongoDB nudi podršku za mnoge programske jezike, kao što su C, C++, C#, Go, Java, Python, Ruby i Swift. Kako funkcioniše MongoDB?
MongoDB je platforma koja omogućava korisnicima da
lako kreiraju baze podataka. Ova baza podataka koristi dokument-orientisan pristup, čime omogućava skladištenje podataka kao kolekcija dokumenata. Dokumenti su osnovna jedinica podataka u MongoDB-u i sastoje se od parova polje-vrijednost. Za razliku od tradicionalnih baza podataka, MongoDB koristi JSON format za skladištenje podataka, što omogućava efikasniju manipulaciju podacima i podržava različite tipove podataka. Skupovi dokumenata nazivaju se kolekcijama, koje funkcionišu kao ekvivalent relacionih tabela baza podataka. Kolekcije mogu sadržati bilo koji tip podataka, ali ograničenje je da podaci u kolekciji ne mogu biti raspoređeni po različitim bazama podataka. Korisnici MongoDB-a mogu kreirati više baza podataka sa više kolekcija. Mongo shell je standardna komponenta open-source distribucija MongoDB-a. Kada se MongoDB instalira, korisnici povezuju mongo ssa svojim pokrenutim MongoDB instancama. Mongo shell deluje kao interaktivni JavaScript interfejs za MongoDB, što omogućava korisnicima da upituju ili ažuriraju podatke i obavljaju administrativne operacije. Zašto se koristi MongoDB? MongoDB se koristi iz nekoliko razloga: 1. Skladištenje: MongoDB može skladištiti velike količine strukturiranih i nestrukturiranih podataka i skalabilan je vertikalno i horizontalno. Indeksi se koriste kako bi se poboljšala performansa pretrage, a pretrage se mogu vršiti po polju, opsegu i izrazima. 2. Integracija podataka: MongoDB omogućava integraciju podataka za različite aplikacije, uključujući hibridne i multi-cloud aplikacije. 3. Opisi kompleksnih struktura podataka: Baze podataka dokumenata omogućavaju ugnježđivanje dokumenata radi opisa ugnježđenih struktura (struktura unutar strukture) i mogu tolerisati varijacije u podacima. 4.Balansiranje opterećenja:MongoDB se može koristiti za rad preko više servera, cciomogućavajući ravnotežu opterećenja i povećavajući otpornost sistema. Karakteristike MongoDB-a
1. Replikacija: MongoDB podržava visoku dostupnost putem
skupova replika, s primarnim i sekundarnim serverima. 2. Skalabilnost: Omogućuje vertikalno i horizontalno skaliranje za povećanje kapaciteta. 3. Balansiranje opterećenja: MongoDB automatski rukuje balansiranjem opterećenja bez potrebe za posebnim alatima. 4. Bez šeme: Funkcioniše bez unaprijed definisanih šema, što olakšava upravljanje podacima. 5. Dokumenti: Podaci se čuvaju kao dokumenti s ključ-vrijednost parovima, čineći ih fleksibilnijim u poređenju s tradicionalnim SQL bazama podataka. Prednosti
Bez šeme: MongoDB ne zahtijeva unaprijed definisane šeme, omogućavajući
skladištenje različitih tipova podataka i lakše skaliranje. Orijentisan na dokumente: Korišćenje dokumenata olakšava mapiranje podataka u različitim programskim jezicima i smanjuje potrebu za spajanjem baza podataka, što može smanjiti troškove. Skalabilnost: Horizontalna skalabilnost omogućava MongoDB-ju da efikasno rukuje velikim količinama podataka i da ih distribuira preko više servera. Podrška trećih strana: MongoDB podržava više sistema za skladištenje podataka i omogućava trećim stranama da razvijaju svoje sisteme za skladištenje podataka. Agregacija: Ugrađene mogućnosti agregacije omogućavaju izvršavanje MapReduce koda direktno na bazi podataka, što olakšava rad s podacima. Nedostaci
Kontinuitet: Automatsko preuzimanje u slučaju pada
sistema može trajati i do minut, što može biti neadekvatno za određene aplikacije. Limiti upisa: Jedan glavni čvor ograničava brzinu upisa podataka u bazu, što može usporiti rad u sistemima s visokim opterećenjem. Sigurnost: Podrazumevano, MongoDB ne omogućava autentifikaciju korisnika, što može predstavljati sigurnosni rizik ako se ne konfiguriše adekvatno.