Blog IT, Blog Marketing

Bazy danych

Bazy danych

Marcin Sarna , 05.08.2021 r.

Szybkie wprowadzenie do tematu czyli czym się różni SQL od NoSQL.

Rodzaje baz danych

Bazy danych są zorganizowanym zbiorem informacji przechowywanych i dostępnych elektronicznie z poziomu systemu komputerowego. Istnieje wiele rodzajów baz danych takich jak baza danych w chmurze, relacyjna baza danych, baza danych zorientowana obiektowo czy baza danych NoSQL. W zależności od typu, struktury, modelu danych, magazynu danych i zamierzonego sposobu użycia danych, różne systemy nadają się lepiej lub gorzej. Skupmy się na dwóch głównych kategoriach baz danych: SQL i NoSQL.

Co to jest SQL? To skrót od Structured Query Language i jest standardowym językiem relacyjnych baz danych (czyli z ang. RDBMS). Relacyjna baza danych definiuje relacje (zależności) pomiędzy poszczególnymi tabelami. Przykłady relacyjnych baz danych to MySQL Database, Postgres, Oracle, MS SQL Server czy Sybase.

Relacje w bazach danych

NoSQL z kolei to nierelacyjna lub inaczej rozproszona baza danych. Baza danych NoSQL jest używana do rozproszonych magazynów danych o bardzo dużych potrzebach w zakresie przechowywania danych (najczęściej NoSQL jest używane w przypadku dużych zbiorów danych i aplikacji internetowych czasu rzeczywistego). Bazy danych NoSQL mogą przechowywać dane ustrukturyzowane, częściowo ustrukturyzowane, nieustrukturyzowane i polimorficzne i mogą być oparte tak na dokumentach jak i parach klucz-wartość. Przykłady? MongoDB, Redis, Neo4j, Cassandra i Hbase.

Różnice

Przejdźmy do głównych różnic między tymi dwoma rodzajami baz danych.

  • Język zapytań: NoSQL nie ma zadeklarowanego języka zapytań, podczas gdy SQL jest przykładem ustrukturyzowanego języka zapytań.
  • Schemat: bazy danych NoSQL używają dynamicznego schematu dla danych nieustrukturyzowanych a bazy danych SQL mają wstępnie zdefiniowany schemat.
  • Możliwość skalowania: bazy danych NoSQL są skalowalne w poziomie, a bazy danych SQL w pionie.
  • Odmiany: NoSQL to wiele różnych typów, np. magazyny klucz-wartość, bazy danych wykresów itp. A SQL to w zasadzie jeden typ z niewielkimi zmianami.
  • Najlepsze zastosowanie: NoSQL najlepiej nadaje się do rozwiązywania problemów z dostępnością danych, a relacyjna baza danych to właściwa opcją do rozwiązywania problemów związanych z ACID (atomowością, spójnością, izolacją i trwałością).
  • Najlepsze funkcje: SQL obsługuje wiele platform, a także jest bezpieczny i bezpłatny. NoSQL jest z kolei łatwy w użyciu, ma wysoką wydajność i jest narzędziem naprawdę elastycznym.
  • Model: SQL używa ACID, który jest standardem dla RDBMS, a tzw. BASE jest używany w wielu systemach NoSQL - ACID zapewnia spójność systemu podczas gdy BASE koncentruje się na wysokiej dostępności.

ACID, BASE?

Już tłumaczymy. ACID oznacza:

  1. Niepodzielność (Atomicity) — transakcja bazy danych musi całkowicie się powieść lub całkowicie zakończyć niepowodzeniem. Niedozwolony jest częściowy sukces.
  2. Spójność (Consistency ) - podczas transakcji bazy danych system RDBMS przechodzi od jednego prawidłowego stanu do drugiego. Stan nigdy nie jest nieważny.
  3. Izolacja (Isolation ) — Transakcje nie mogą naruszać integralności innych transakcji poprzez interakcję z nimi, gdy są jeszcze w toku. Muszą występować w oderwaniu od innych klientów.
  4. Trwałość (Durability) — dane związane z zakończoną transakcją będą się utrzymywać nawet w przypadku awarii sieci lub zasilania. Jeśli transakcja się nie powiedzie, nie wpłynie to na manipulowane dane.

BASE zaś to skrót od:

  1. Zasadniczo dostępny (Basically Available) — gwarantuje się, że system będzie dostępny do wysyłania zapytań przez wszystkich użytkowników (brak izolacji)
  2. Stan miękki (Soft State) — ze względu na brak natychmiastowej spójności wartości danych mogą się zmieniać w czasie. Model BASE zrywa z koncepcją bazy danych, która wymusza własną spójność, delegując tę odpowiedzialność na deweloperów.
  3. Ostatecznie spójny (Eventually Consistent) — fakt, że BASE nie wymusza natychmiastowej spójności, nie oznacza, że nigdy jej nie osiąga. Jednak dopóki tak się nie stanie, odczyty danych są nadal możliwe (nawet jeśli mogą nie odzwierciedlać rzeczywistości).

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej