MongoDB
MongoDB jest otwartoźródłowym, nierelacyjnym systemem zarządzania bazą danych NoSQL, opracowanym przez firmę MongoDB, Inc.. System ten przechowuje dane w postaci dokumentów typu JSON-like, zwanych BSON (Binary JSON), co umożliwia elastyczną strukturę danych oraz wysoką skalowalność.
Historia
Projekt MongoDB rozpoczął się w 2007 roku pod nazwą 10gen. Pierwsza wersja publiczna została wydana w 2009 roku. W 2013 roku firma zmieniła nazwę na MongoDB, Inc., a system zyskał popularność jako jedno z głównych rozwiązań NoSQL wśród aplikacji internetowych i mobilnych.
Architektura
- Dokumenty BSON – podstawowa jednostka przechowywania danych; dokumenty mogą zawierać zagnieżdżone struktury i tablice.
- Kolekcje – zbiory dokumentów podobne do tabel w tradycyjnych bazach danych.
- Sharding – podział danych na wiele serwerów w celu zapewnienia skalowalności poziomej.
- Replikacja – mechanizm replikacji danych w klastrze, zapewniający wysoką dostępność i odporność na awarie.
- Indeksy – możliwość tworzenia indeksów na dowolnych polach dokumentu, co przyspiesza zapytania.
Funkcje i możliwości
MongoDB oferuje szereg funkcji, które odróżniają go od tradycyjnych systemów relacyjnych:
- Dynamiczny model danych – brak wymogu definiowania sztywnej schemy.
- Obsługa zapytań w języku JavaScript, w tym agregacji i map‑reduce.
- Transakcje wielodokumentowe od wersji 4.0, zapewniające spójność ACID.
- Wbudowane mechanizmy bezpieczeństwa: uwierzytelnianie, autoryzacja, szyfrowanie danych w spoczynku.
- Rozbudowany ekosystem narzędzi: Compass (GUI), Automation, oraz sterowniki do ponad 30 języków programowania.
Zastosowania
MongoDB znajduje zastosowanie w wielu dziedzinach, m.in.:
- Systemy e‑commerce – przechowywanie katalogów produktów oraz zamówień.
- Analiza danych w czasie rzeczywistym – wykorzystanie agregacji i strumieniowania.
- IoT – obsługa dużej liczby urządzeń generujących dane o zmiennej strukturze.
- Systemy rekomendacyjne – szybkie przetwarzanie danych o użytkownikach i ich preferencjach.
Licencjonowanie
MongoDB jest rozpowszechniane na licencji Server Side Public License (SSPL), a także dostępna jest komercyjna wersja MongoDB Enterprise z dodatkowymi funkcjami bezpieczeństwa i wsparcia technicznego.
Krytyka i ograniczenia
Choć MongoDB jest ceniony za elastyczność, krytycy wskazują na pewne ograniczenia:
- Brak silnego wsparcia dla transakcji wielotabelowych w starszych wersjach.
- Możliwość fragmentacji danych przy nieodpowiedniej konfiguracji indeksów.
- Wysokie zużycie pamięci RAM w przypadku dużych zbiorów danych.
Powiązane pojęcia
Warto zapoznać się z następującymi artykułami encyklopedycznymi:
Bibliografia
Treść artykułu oparta jest na materiałach wewnętrznych encyklopedii oraz dokumentacji projektu MongoDB, Inc..