NoSQL – alternatywa dla relacyjnych baz danych
Spis treści:
Tradycyjne, relacyjne bazy danych dają użytkownikowi możliwość gromadzenia danych. Mają jednak ograniczenia i nie są rozwiązaniem wszystkich problemów związanych z przechowywaniem i analizą danych. Alternatywą dla rozwiązania relacyjnego może być szeroko pojęte NoSQL, czyli bazy danych, które nie są oparte o model relacyjny.
Relacyjny model danych
Tradycyjne bazy danych działają w oparciu o relacyjny model danych. Dane grupowane są w relacje, które reprezentują tabele. Wspomniana relacja to zbiór rekordów o takiej samej strukturze powiązanych przez związki zachodzące między danymi. Relacyjne bazy danych działają też w oparciu o zbiór własności, które gwarantują poprawne przetwarzanie danych zwanych ACID – atomowość, spójność, izolację i trwałość.
Co to jest NoSQL?
NoSQL jest to pojęcie definiujące nierelacyjną bazę danych – czyli taką, której mechanizmy przechowywania i wyszukiwania danych modelowane są w inny sposób niż ma to miejsce w relacyjnych bazach danych. Bazy danych określane jako NoSQL w zdecydowanej większości nie spełniają ACID, co stanowi kolejną różnicę pomiędzy klasyczną bazą danych, a NoSQL. Pojęcie nierelacyjnej bazy danych znane jest od lat 60 XX wieku, ale prawdziwy rozwój tego typu rozwiązań przypada na czas, gdy firmy takie jak Google, Facebook, Netflix czy IBM szukały alternatywy dla relacyjnych baz danych, które nie mogły poradzić sobie ze skalowalnością czy równoległym przetwarzaniem danych.
Warto wspomnieć, że już na początku XXI wieku Google rozwiązało oba problemy za pomocą rozwiązania opartego na algorytmie MapReduce. Skłoniło to programistów do bliższego przyjrzenia się tematowi baz NoSQL.
Modele danych
NoSQL to ogólna nazwa baz danych, które nie działają w oparciu o model relacyjny. Każde z rozwiązań ma swój model danych.
Baza danych klucz – wartość
Taka baza danych reprezentowana jest przez tablicę asocjacyjną. Dane to pary klucz – wartość, gdzie każdy możliwy klucz pojawia się maksymalnie raz. Jest to jeden z prostszych nierelacyjnych modeli danych. Inne powstają często, jako rozszerzenie zestawienia klucz-wartość.
Baza danych dokumentów
W tym modelu danych główną rolę odgrywają dokumenty, zawierające najczęściej uporządkowane dane. Przykładem mogą być bazy danych dokumentów XML. System pozwala na wyszukiwanie i modyfikowanie danych zawartych w dokumentach poprzez język operacji na danych obecnych w dokumencie jak i na strukturalnych częściach dokumentu – w tym przypadku znacznikach XML.
Baza danych jako rodzina kolumn
Ten model danych stanowi analogię do modelu relacyjnego, gdzie każda para klucz – wartość jest rzędem w tabeli, czyli rodzinie kolumn. Trzecią wartością przechowywaną w bazie jest stempel czasu – jest to rozwiązanie problemu aktualizacji danych.
Grafowa baza danych
Model grafowy jest oparty na zależnościach pomiędzy grafową strukturą danych. Sprawdza się on bardzo dobrze w sytuacjach, gdy konieczne jest odwzorowanie powiązań pomiędzy elementami np. w sieciach społecznościowych czy też w odwzorowaniu topologii sieciowych.
Strumieniowa baza danych
Dane w modelu strumieniowym nie są trwałe, możliwa jest za to praca na zmiennym w czasie zbiorze danych. Zapytania do bazy są przetwarzane w sposób ciągły. Takie bazy danych są wykorzystywane głównie w finansach, gdzie pomagają w zarządzaniu ryzykiem i wykrywaniu oszustw.
Dzięki swojej różnorodności oraz podejściu odmiennemu do klasycznych rozwiązań, nierelacyjne bazy danych zdobywają popularność w coraz to nowych dziedzinach. Rozwiązania te mogą śmiało konkurować z tradycyjnymi możliwościami, a w niektórych przypadkach sprawdzają się zdecydowanie lepiej od swoich relacyjnych odpowiedników.
Ja dopiero uczę się Microsoft Access, ale ten program także jest bardzo ciekawy, chociaż trudniejszy w obsłudze.
Nosql jest przydatne w niektórych zastosowaniach oraz szybsze niż relacyjne bazy.