Abstract:
W mojej pracy opisałem podstawowe metody utrwalania danych takie jak zapis do pliku w formatach: XML, JSON, CSV, serializacja binarna i BSON. Bardziej szczegółowo opisałem cztery rodzaje baz danych: relacyjną (PostgreSQL), dokumentową (MongoDB), grafową (Neo4j) i rodziny kolumn (Cassandra). Następnie przeprowadziłem testy tych baz danych wykonując sześć zapytań: wyszukiwanie po identyfikatorze, filtrowanie, agregacja, szukanie sąsiadów, dodawanie rekordu i usuwanie rekordu. Na podstawie wyników testów i wiedzy o tych bazach danych wywnioskowałem kiedy najlepiej używać konkretną bazę danych.
Wywnioskowałem, że na podstawie takich prostych testów ciężko jest podjąć decyzją, która baza danych będzie odpowiednia. Najpierw trzeba określić jakie dane będziemy gromadzić i co będziemy chcieli z nich wyciągać. Relacyjna baza danych najlepiej sprawdzi się w zapytaniach doraźnych dotyczących jednej tabeli, gdy potrzebujemy wysoce rozwiniętego mechanizmu transakcyjności i nie zależy nam na elastycznej strukturze danych. Dokumentowa baza danych daje nam elastyczność i swobodę jeśli chodzi o strukturę danych. Przechowuje dane zdenormalizowane, więc sprawdzi się gdy chcemy przechowywać na przykład posty z bloga wraz z komentarzami. Grafowa baza danych sprawdzi się najlepiej gdy mamy do czynienia z danymi i zapytaniami typowo grafowymi. Grafowe bazy danych posiadają funkcjonalności takie jak szukanie najkrótszych ścieżek lub łatwe konstruowanie zapytań szukających w głąb grafu. Cassandra jako przedstawiciel bazy danych rodziny kolumn jest rozproszona i zdecentralizowana. Została stworzona do obsługiwania dużych ilości operacji zapisu z różnych źródeł. Najlepiej sprawdzi się, gdy system przewiduje ogromne ilości operacji zapisu w celach gromadzenia dużych ilości danych ale nie koniecznie zależy mu na łatwym i sprawnym dostępie do danych i przeprowadzania analiz.