top of page
  • Zdjęcie autoraKamil Zawadzki

Porównanie noSQL i SQL, jaką bazę danych wybrać?


Webchefs_Software _for_humans_NoSQL_vs_SQL_article

Czym jest baza danych? Najprościej mówiąc, jest to uporządkowany zbiór danych. Wszystkie informacje są odpowiednio zorganizowane, podzielone i pogrupowane, dzięki czemu korzystanie z nich jest znacznie ułatwione. Tego typu bazy powstały już w latach 60. Wzrastające potrzeby rynku sprawiły, że pojawiły się też ich różne rodzaje – SQL i noSQL. Prędzej czy później, każda aplikacja czy strona musi z którejś z nich skorzystać. Rodzi się tutaj jednak pytanie – z której?



Czym jest SQL?


Pojęcie „SQL” pochodzi od angielskiego „Structured Query Language”. Jest to język zapytań, który umożliwia zarządzanie danymi w obrębie danego systemu.

Bazy danych takie jak MySQL lub PostgreSQL czy MS SQL, inaczej zwane relacyjnymi bazami danych, wykorzystują zależność pomiędzy poszczególnymi informacjami. Relacje te łączą dane pomiędzy wieloma tabelami zapewniając jak najbardziej naturalne i logiczne informacji odwzorowanie. Ich struktura jest jasno określona. Bazy SQL najlepiej sprawdzają się zatem w przypadku danych, które nie będą się zmieniać. Przykładem mogą być dane klientów w sklepach internetowych – na przykład ich imię i nazwisko, rodzaj zamówionego towaru czy nazwa użytkownika. Informacje te pozostają niezmienne do momentu gdy nie zajdzie taka potrzeba. Dzięki odpowiednim relacjom pomiędzy tabelami, nie musimy kopiować ich do innych miejsc. Wystarczy sam identyfikator klienta, który zostanie następnie powiązany z odpowiednią tabelą i stamtąd zaczerpnięte zostaną żądane informacje.


Najważniejsze cechy bazy danych SQL:

  • ma statyczną i z góry zdefiniowaną strukturę,

  • … która jest oczywiście modyfikowalna odpowiednimi zapytaniami

  • każdy rekord charakteryzuje się tymi samymi właściwościami,

  • sprawdza się przy danych strukturalnych,

  • jest odpowiednia dla złożonych zapytań,

  • umożliwia wyłącznie skalowanie wertykalne (pionowe) – dołączenie kolejnych serwerów jest niemożliwe.

Bazy danych SQL należą do najczęściej wykorzystywanych na rynku. Najlepiej sprawdzają się one w systemach, które ukierunkowane są na transakcje – czyli takich, które zarządzają relacjami z klientami, wykorzystują oprogramowanie księgowe czy obejmują handel internetowy.



Czym jest noSQL?


Bazy danych noSQL nazywamy inaczej nierelacyjnymi bądź rozproszonymi. Jak sama nazwa wskazuje, główną różnicę stanowi tutaj brak relacji pomiędzy poszczególnymi informacjami. Baza noSQL:

  • pozwala przechowywać dokumenty o unikalnej strukturze – nie posiada z góry zdefiniowanego schematu,

  • jest elastyczna, a każdy rekord może posiadać różne właściwości,

  • sprawdza się przy danych półstrukturalnych, zagnieżdżonych i złożonych,

  • ułatwia wprowadzanie nowych danych – nie wymaga wprowadzania zmian w schematach,

  • nie pozwala na złożone zapytania,

  • umożliwia skalowanie horyzontalne (poziome).

Bazy noSQL najlepiej sprawdzają się w przypadku aplikacji analitycznych, które korzystają z danych nieustrukturyzowanych lub ustrukturyzowanych jedynie częściowo. Jest to dobre rozwiązanie, kiedy wiemy, że nasze dane mogą ulec nagłym zmianom – korzystanie ze zwykłego SQL mogłoby wtedy sprawić niemały problem.



Najpopularniejsze serwisy bazodanowe


Na rynku znaleźć można wiele usług sieciowych pozwalających na uproszczenie konfiguracji i skalowania baz danych. Są to gotowe systemy bazodanowe, które znacznie ułatwiają organizację informacji. Do najpopularniejszych należą:

  • Amazon RDS – usługa pozwalająca na ułatwienie korzystania z danych. Informacje wrzucamy do Oracle, MySQL lub Microsoft SQL Server, a Amazon sam zajmuje się administracją i zarządzaniem danymi.

  • Amazon DynamoDB – kolejna baza ze stajni Amazona, tym razem wykorzystująca noSQL. Podobnie jak w poprzedniej, dane wystarczy tylko dostarczyć, a całą resztą zajmuje się Amazon.

  • DigitalOcean Managed Databases – platforma chmurowa, która różni się nieco od Amazon RDS i chmur Google, jednak oparta jest na tym samym koncepcie, który pomaga nam organizować dane.


Decyzję w wyborze pomiędzy bazami SQL i noSQL warto oprzeć na kilku istotnych czynnikach. Najpierw należy wziąć pod uwagę branżę, w jakiej się poruszamy – nasza praca jest analityczna czy raczej opiera się na transakcjach i potrzebujemy ścisłej struktury oraz skomplikowanych zapytań? Musimy zastanowić się, jaki rodzaj danych posiadamy, a także jakie skalowanie odpowiada nam najbardziej. Nie ma bowiem rozwiązania uniwersalnego. Wybór zależy wyłącznie od naszych potrzeb i aktualnej sytuacji.

2 wyświetlenia0 komentarzy

Ostatnie posty

Zobacz wszystkie

Comments


bottom of page