Relational VS Non-Relational Databases

Back Story: Z powrotem w 2016 roku realizowałem stopień Informatyki na Uniwersytecie w Albany i musiałem wziąć kurs Intro to Databases.

W ramach kursu nauczyłem się dwóch rzeczy:

Relacyjne bazy danych i nierelacyjne bazy danych, ale nigdy naprawdę nie nauczyłem się różnicy między nimi, więc chciałem ponownie rozpalić moją ciekawość z bazami danych i różnicami między nimi.

  • Zdefiniowana przez E.F Codd w 1970 roku, relacyjna baza danych jest cyfrową bazą danych opartą na relacyjnym modelu danych. Dane są przechowywane w tabelach zawierających wiersze (które reprezentują wpisy) i kolumny (które przechowują i sortują określony typ informacji). Relacje są ustalane poprzez klucze podstawowe i obce.

Przykład relacyjnego modelu bazy danych

Języki: SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3

Zalety:

  • Może obsługiwać wiele złożonych zapytań, transakcji bazodanowych oraz rutynową analizę danych.
  • ACID(Atomity, Consistency, Isolation, Durability): Zestaw właściwości, które zapewniają niezawodność transakcji bazodanowych.

Wady:

  • Nie mogą przechowywać złożonych lub bardzo dużych obrazów, liczb, projektów i produktów multimedialnych
  • Mogą stać się bardzo kosztowne w utrzymaniu i nowych serwerach

Wspaniale! Ale co, jeśli nasze zbiory danych są zbyt duże lub nieustrukturyzowane?

Non-Relational Database or NoSQL

What is a Non-Relational Database?

  • Non-relational databases existed in the late 1960’s, but the term was not used until 1998 by Carlo Strozzi who led the development of NoSQL.
  • „Baza danych NoSQL (pierwotnie odnosząca się do „non SQL” lub „non relational”) zapewnia mechanizm przechowywania i pobierania danych, które są modelowane w sposób inny niż relacje tabelaryczne stosowane w relacyjnych bazach danych.” – Wikipedia

Typy baz danych NoSQL:

Column Store: Wykorzystuje koncepcję przestrzeni kluczowej, która zawiera wszystkie rodziny kolumn zawierające wiersze i kolumny do przechowywania i organizowania danych.

Każdy wiersz zawiera rodzinę kolumn

Bazy danych: Apache HBase, Cassandra

Key-Value Store: Wykorzystuje tablicę asocjacyjną (mapę lub słownik) jako ich podstawowy model danych. Dane są reprezentowane jako kolekcja par klucz-wartość, a klucz pojawi się co najwyżej raz w kolekcji. Możesz przechowywać wartość, taką jak liczba całkowita, ciąg znaków, struktura JSON lub tablica, wraz z kluczem używanym do odniesienia do tej wartości.

Każdy wiersz ma swój własny identyfikator i wartości

Baza danych: Redis, Amazon DynamoDB

Graph: Jest bazą danych, która wykorzystuje struktury grafów do reprezentowania i przechowywania danych. Pozwala to użytkownikom na szybkie przemieszczanie się między wszystkimi połączonymi wartościami i znajdowanie wglądu w relacje.

Wszystkie filmy, w których występuje Kevin Bacon

Baza danych: neo4J, OrientDB, Titan

Document-Oriented Database: Baza danych zorientowana na dokumenty, lub magazyn dokumentów, to program komputerowy przeznaczony do przechowywania, pobierania i zarządzania informacjami zorientowanymi na dokumenty, zwanymi również danymi półstrukturalnymi.

Baza danych: MongoDB, Couchbase

Zalety:

  • Wielkie wolumeny danych ustrukturyzowanych, półstrukturalnych i nieustrukturyzowanych
  • Programowanie zorientowane obiektowo, które jest łatwe w użyciu i elastyczne (MongoDB jest w zasadzie napisana w javascript)
  • Wydajna, skalowalna architektura typu scale-out zamiast drogiej, monolitycznej architektury

Wady:

  • Mniejsze wsparcie, ponieważ bazy danych NoSQL są zazwyczaj open-source
  • Administracja: Bazy danych NoSQL wymagają umiejętności technicznych w celu zainstalowania i utrzymania.
  • Mało dojrzałe. Bazy danych NoSQL wciąż się rozwijają i wiele funkcji jest wciąż wdrażanych.

Której z nich używać?

Firmy wykorzystują mieszankę zarówno tradycyjnych, jak i nierelacyjnych baz danych, aby spełnić swoje wymagania i potrzeby biznesowe.

Relacyjna baza danych:

Tradycyjne relacyjne bazy danych bardzo dobrze radzą sobie z bezpiecznym przechowywaniem transakcji danych i wykonywaniem złożonych zapytań w celu uzyskania informacji. Firmy, które są już ustrukturyzowane i nie doświadczają ogromnego wzrostu, najprawdopodobniej będą trzymać się tradycyjnych baz danych.

Nierelacyjne bazy danych:

Doskonałe do przechowywania dużych ilości danych o niewielkiej strukturze. Firmy rozwijające się w szybkim tempie, takie jak startupy, wykorzystują więcej nierelacyjnych baz danych ze względu na ich skalowalność i elastyczność. W połączeniu z chmurą nierelacyjne bazy danych mogą również zaoszczędzić firmom wiele pieniędzy.

Data Fun Facts:

  1. Dane rosną szybciej niż kiedykolwiek wcześniej, a do roku 2020 w każdej sekundzie będzie powstawać około 1,7 megabajta nowych informacji dla każdego człowieka na naszej planecie.
  2. Do tego czasu nasz skumulowany cyfrowy wszechświat danych wzrośnie z obecnych 4,4 zettabajtów do około 44 zettabajtów, czyli 44 bilionów gigabajtów.
  3. Obserwujemy ogromny wzrost ilości danych wideo i zdjęć, gdzie w każdej minucie do 300 godzin wideo jest przesyłanych do samego YouTube.
  4. W tym roku ponad 1,4 miliarda smartfonów zostanie dostarczonych – wszystkie będą wyposażone w czujniki zdolne do zbierania wszelkiego rodzaju danych, nie wspominając o danych, które użytkownicy sami tworzą.
  5. W ciągu pięciu lat na świecie będzie ponad 50 miliardów inteligentnych połączonych urządzeń, wszystkie stworzone do zbierania, analizowania i dzielenia się danymi.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.