LiteDB – Kompaktowa baza danych NoSQL

Jakiś czas temu poszukiwałem prostej bazy danych dla mojej aplikacji desktopowej. Oczywiście mogłem sam zaimplementować jakieś rozwiązanie, ale wolałem skorzystać z gotowca, a przynajmniej zapoznać się z dostępnymi rozwiązaniami. Moje wymagania nie były zbyt duże. Chciałem żeby było to coś bardzo prostego. Od razu odrzuciłem wszystkie serwerowe bazy danych, ponieważ jednym z podstawowych założeń jest, że moja aplikacja będzie działać offline. Mam świadomość, że prawdopodobnie wraz z rozwojem projektu będą powstawać nowe rodzaje encji, które również będę chciał przechowywać w bazie. Nie chciałbym bawić się we wprowadzania zmian za każdym razem kiedy pojawi się nowy typ danych. Stąd wziął się pomysł na wykorzystanie kompaktowej bazy NoSQL.

Zbadałem jakie są dostępne możliwości dla platformy .NET i moją uwagę zwróciły dwa produkty:

Oba spełniają wszystkie moje wymagania funkcjonalne, jednak na ostateczną decyzję wpłynęła licencja. W chwili pisania posta byłem przekonany, że RavenDB w przeciwieństwie do LiteDB nie udostępnia darmowej licencji. Przepraszam wszystkich czytelników za wprowadzenie w błąd i jednocześnie dziękuję za zwrócenie mi uwagi. Mimo wszystko mój wybór padł na LiteDB. Jest to bardzo prosta baza danych inspirowana MongoDB. Dostarcza nam całkiem sporo funkcjonalności (więcej niż potrzebowałem). Najważniejszą zaletą jest to, że nie musimy niczego instalować. Wystarczy dodać do projektu bibliotekę i można działać. Baza danych wszystkie informacje przechowuje w jednym pliku.

Instalujemy bibliotekę za pomocą nugeta:

Najprostsza konfiguracja ogranicza się do podania ścieżki do pliku. Można konfigurować również inne rzeczy, np. hasło do bazy danych. Szczegóły znajdują się w dokumentacji.

To wystarczy aby można było pracować z bazą danych. W moim projekcie dodałem również generyczne repozytorium, które bardzo upraszcza kod. Dzięki temu podejściu nie będzie potrzeby tworzenia nowych repozytoriów kiedy zajdzie konieczność przechowywania w bazie nowych typów danych.

To proste rozwiązanie pozwoliło mi dalej pracować nad projektem, bez konieczności martwienia się o bazę danych. Oczywiście w Twoim przypadku może okazać się, że będziesz potrzebować czegoś więcej. Zachęcam do zapoznania się z dokumentacją LiteDB, być może da się w prosty sposób przekształcić repozytorium tak aby dostosować je do Twoich potrzeb.

No dobrze, ale co jeżeli chcielibyśmy zajrzeć do bazy danych lub zmodyfikować ją bez korzystania z naszej aplikacji? Na szczęście autor biblioteki zadbał również i o to. Ze strony projektu trzeba pobrać LiteDB.Shell.exe oraz LiteDB.dll (można znaleźć tutaj). Następnie łączymy się z bazą wskazując ścieżkę do pliku na dysku.

Więcej opcji znajdziecie wpisując komendę „help” lub w dokumentacji.

9 komentarzy dotyczących “LiteDB – Kompaktowa baza danych NoSQL

  1. Takie odkrywanie koła na nowo… SQLLite wynaleziono lata temu, do prostych aplikacji desktopowych nadaje się wyśmienicie. Co pokolenie to odkrywa na nowo to samo i jest tym wielce zachwycone.

    1. Zgadzam się, że nie jest to jakieś wielkie odkrycie. Nie ma żadnych wątpliwości, że SQLLite jest bardzo dobrym produktem, który istnieje już od lat. Jest to jednak baza relacyjna, która ma swoje wady i zalety w stosunku do podejścia NoSQL, reprezentowanego w tym przypadku przez LiteDB. Myślę, że warto jest być świadomym istnienia różnych produktów, które mają podobne zastosowanie.

  2. Hej, super sprawa. SQLite używam dość dużo ale wersji NoSql nie próbowałem. Brzmi super. Dzięki za post.

    ps

    co do Pana marudy to wiedzę o rzeczach oczywistych trzeba sobie odświeżać aby nie popaść w stagnację.

  3. RavenDB też jest dostępne na licencji darmowej, oprócz komercyjnych. Jak kiedyś porównywałem te dwie bazy, to również wybrałem LiteDB, ale ze względu na rozmiar na dysku zajmowany przez pustą bazę, RavenDB zajmuje kilkadziesiąt MB na starcie, a ja potrzebowałem czegoś małego i nosqlowego.

Dodaj komentarz

Twój adres email nie będzie opublikowany. Pola wymagane zostały oznaczone *