Związek bez relacji ? nierelacyjne bazy danych (NoSQL). Część 1 ? ogólna charakterystyka.
Poniższy artykuł stanowi ogólne wprowadzenie w tematykę nierelacyjnych baz danych. Zostały przedstawione potencjalne obszary zastosowania NoSQL, a także korzyści z nich wynikające.
Na zakończenie wymieniono poszczególne modele danych, które zostaną omówione szerzej w 2 części tego artykułu.
Wprowadzenie
Nierelacyjne bazy danych (zwane również bazami danych NoSQL) obejmują szeroki wachlarz różnorodnych technologii, które powstały w odpowiedzi na wymagania stawiane przy tworzeniu nowoczesnych aplikacji.
Struktury danych używane przez NoSQL odbiegają od tych, powszechnie używanych w bazach relacyjnych, dzięki czemu część wykonywanych przez nie operacji jest szybsza. Są one również postrzegane jako bardziej elastyczne.
Wybór konkretnego rozwiązania pod względem modelu danych NoSQL zależy w dużej mierze od problemu, który musi zostać przez niego rozwiązany.
Wiele nierelacyjnych baz danych narusza spójność (w sensie twierdzenia CAP) na poczet większej dostępności danych (przepustowości). Nie oferują one także niskopoziomowych języków zapytań (np. nie dają możliwości wykonywania połączeń ad-hoc między tabelami, w przeciwieństwie do SQL), jak również nie posiadają ustandaryzowanych interfejsów.
Zastosowanie
Nierelacyjne bazy danych najlepiej sprawdzają się w następujących warunkach:
- Pobieranie i przechowywania ogromnej ilości danych
- Relacja między przechowywanymi danymi nie jest zbyt istotna
- Dane zmienne w czasie i nieuporządkowane
- Brak konieczności obsługi ograniczeń i złączeń na poziomie bazy danych
- Dane stale przyrastające i wymagające regularnej skalowalności bazy danych
Korzyści wynikające z użytkowania nierelacyjnych bazy danych
W porównaniu z relacyjnymi bazami danych, bazy danych NoSQL są bardziej skalowalne i zapewniają lepszą wydajność. Warto również wspomnieć, że ich model danych wspiera szereg rozwiązań, z którymi nie radzi sobie tradycyjny model relacyjny:
- Duże ilości szybko zmieniających się ustrukturyzowanych, częściowo ustrukturyzowanych i nieustrukturyzowanych danych
- Zwinne metodyki zarządzania projektami; iteracyjny, przyrostowy model wytwarzania oprogramowania
- Programowanie obiektowe ? elastyczne i przyjazne w użyciu
- Geograficznie rozproszona, skalowana architektura zamiast drogiej, monolitycznej
Różne typy nierelacyjnych baz danych
Ze względu na model danych, nierelacyjne bazy danych można podzielić na kilka kategorii:
Podsumowanie
Artykuł ten daje ogólną wiedzę na temat baz danych NoSQL, ich cech charakterystycznych oraz kategorii na jakie się dzielą.
W kolejnym artykule każdy z poszczególnych typów nierelacyjnych baz danych zostanie szczegółowo przedstawiony, wraz z przykładowym modelem danych, konkretną implementacją, jak również reprezentatywnymi zaletami i wadami.
Źródła
- P. J. Sadalage, M. Fowler, ?NoSQL Kompendium wiedzy?, Helion 2015
- A. Wójcik, ?Nierelacyjne bazy danych?, Zeszyty Naukowe WSEI 2014
- https://www.geeksforgeeks.org/introduction-to-nosql/
- https://itwiz.pl/czym-jest-nosql-jak-wykorzystac-nierelacyjne-bazy-danych/
Autor: Artur Pasik, Performance/Automation Test Engineer