Co to jest relacyjna baza danych?


Jest to baza, która przechowuje powiązane ze sobą dane i zapewnia do nich dostęp. Dane pogrupowane są w relacje za pomocą tabel, dlatego mówimy o modelu relacyjnym.

relational_databases_hero

Definicja relacyjnej bazy danych

System zarządzania relacyjną bazą danych (RDBMS) jest dominującym modelem na rynku. Wiele usług sieciowych i aplikacji biznesowych korzysta z tego typu baz w celu ustrukturyzowania danych i wydobycia z nich istotnych informacji. Niektóre duże firmy z branży chmurowej opracowały własne modele (np. Db2, który należy do IBM, Oracle Database i Microsoft SQL Server). Wiele systemów RDBMS to projekty open source’owe:

  • MySQL to najpopularniejszy system na świecie. W 2009 r. został przejęty przez Oracle, pierwotnie był jednak projektem darmowym i otwartym. W reakcji na to przejęcie deweloperzy stworzyli jego następcę, również o otwartym kodzie źródłowym: MariaDB
  • PostgreSQL to również rozwiązanie typu open source. Rozwijany jest przez zespół niezależnych deweloperów. Jego działanie różni się nieznacznie od działania MySQL, ponieważ jest to model obiektowo-relacyjny (RDBMS)
  • SQLite to biblioteka publiczna, jej cechą szczególną jest to, że jest zainstalowana jest bezpośrednio w programie, a nie w trybie klient-serwer.

Skrót SQL pochodzi od nazwy: Structured Query Language. Jest to standardowy interfejs dla relacyjnej bazy danych. Jego instrukcje są wykorzystywane do strukturyzacji danych i organizacji informacji, które chcemy z nich wydobyć.

Architektura relacyjnej bazy danych

Organizacja baz danych opiera się na teorii Edgara F. Codda z 1971 r., który wprowadził główne założenia dotyczące modelu relacyjnego. Zgodnie z tą teorią każde „naturalne” zapytanie można przetłumaczyć na algebrę relacyjną, a tym samym na język zapytań czytelny dla komputera (za pomocą SQL). W tym modelu relacja (lub tabela) składa się z kilku atrybutów uporządkowanych w kilku wierszach i kolumnach, zwanych krotkami. Cała tabela jest postrzegana jako zbiór krotek. Przykład:

schema_relational_databases

Każdy element relacji jest powiązany z typem danych (wartością) za pomocą schematu relacji w następujący sposób:

Relacja = (Atrybut1: Typ1, Atrybut2: Typ2, ... , Atrybutn: Typn)

Dzięki temu można zdefiniować konkretny element i przypisać mu dane wartości krotki w celu utworzenia tabeli. Widzimy zatem, że relacyjna baza danych jest zbiorem różnych tabel, które są ze sobą powiązane.

Jak działa relacyjna baza danych?

Aby administrować bazą danych, użytkownicy komunikują się z interfejsem zarządzania za pomocą języka SQL, który jest oparty na algebrze relacyjnej. Wszystkie polecenia są wyrażone w języku SQL i szczegółowo opisują każdy etap tworzenia bazy danych. Język ten umożliwia wybór pożądanych informacji, wskazywanie ich lokalizacji w bazie danych, interakcje między nimi, etc.

Należy jednak zwrócić uwagę na pewną specyfikę.

Klucze

Jest to zbiór atrybutów umożliwiających identyfikację określonego zbioru danych. Na przykład, jeśli spojrzymy na poprzednią tabelę: A1 + A2 może określać klientów, którzy kupili nowy samochód w drugiej połowie roku, gdzie A1 określa zakup pojazdu, a A2 termin zakupu. Żaden z wybranych atrybutów nie może przyjmować wartości „null”, gdyż wszystkie operacje z udziałem wartości nieznanej – dają zawsze w wyniku „null”. Każda tabela posiada klucz główny, który może być eksportowany do innej tabeli (jako klucz obcy) w celu powiązania zbiorów danych.

Jednak gdy dwie tabele są powiązane kluczami obcymi, mogą odpowiadać tylko na jedno zapytanie. Aby określić informacje dotyczące kilku tabel, należy użyć funkcji JOIN.

JOIN

Jest to operacja umożliwiająca jednoczesne odpytywanie kilku tabel. Wybrane dane są gromadzone i filtrowane zgodnie z warunkami określonymi przez użytkownika.

Funkcja SQL JOIN stanowi kluczowy element w wielotabelowych bazach danych, dzięki czemu generowane są użyteczne i jakościowe informacje.

Istnieją trzy rodzaje JOIN:

  • INNER JOIN
  • OUTER JOIN
  • SELF JOIN.

Tabele danych rzadko są badane oddzielnie. Jest to zbiór danych o określonym znaczeniu, rozmieszczonych w różnych tabelach. Dane muszą zostać uprzednio znormalizowane.

Normalizacja

Z logicznego punktu widzenia, odpytywanie kilku tabel w tym samym czasie wymagałoby wysyłania wielu zapytań do różnych tabel w celu wyodrębnienia z nich danych. Jednak taka operacja jest czasochłonna, niepraktyczna i może powodować dublowanie danych, co mogłoby mieć negatywny wpływ na ich przetwarzanie.

To właśnie w tym momencie użyteczna staje się normalizacja. Przetwarzanie danych według relacji poprzez odpytywanie zbiorów danych połączonych kluczami obcymi, o których była mowa wcześniej, umożliwia wykonanie pojedynczego zapytania.

Różnice w porównaniu do innych modeli baz danych

Nie wszystkie bazy danych opierają się na tym modelu tabel. Mogą się na nim wzorować, ale posiadają swoją specyfikę. W latach 80. XX wieku pojawił się model „zorientowany obiektowo”, który na nowo określił sposób przechowywania informacji. W 2000 roku światło dzienne ujrzał z kolei model „NoSQL”, który zerwał z regułami relacyjnego modelu baz danych. Celem było opracowanie bardziej praktycznych baz służących do zaawansowanej analizy, np. przetwarzania big data. Wszystkie te modele mają swoją charakterystykę i zalety.

Obiektowa baza danych

Umożliwia przechowywanie danych w formie obiektów. „Obiekt” oznacza grupę danych, w której zdefiniowany jest interfejs umożliwiający dostęp do tych informacji.

System ODBMS automatycznie przypisuje każdemu obiektowi identyfikator (ID), umożliwiając dostęp do niego za pomocą różnych metod. Główną różnicą w stosunku do relacyjnej bazy danych jest możliwość przypisania różnych identyfikatorów dwóm odrębnym obiektom o tych samych wartościach, w przeciwieństwie do krotki, która może być identyfikowana tylko przez wartość.

Obiektowa baza danych posiada również własny język: OQL (Object Query Language).

Baza danych zorientowana na dokumenty

Przechowywanie w tych bazach danych różni się całkowicie od modelu relacyjnego. Operacje są w tym przypadku przeprowadzane na niejednorodnych danych z odrębnie przetwarzanych dokumentów (a nie na tabelach). Mogą to być zarówno dokumenty tekstowe w formatach JSON, YAML lub XML, jak i dane nieustrukturyzowane, takie jak pliki graficzne, wideo lub audio.

Dokumenty są zapisywane w kombinacjach klucz-wartość. Pamiętaj, że w tym przypadku określenie klucz jest tożsame z określeniem atrybut i nie ma nic wspólnego z kluczami relacyjnych baz danych.

Możesz grupować kilka dokumentów w zbiory i w ten sposób je klasyfikować. Zapytania służące do obsługi bazy danych zorientowanej na dokumenty mają postać funkcji, na przykład w JavaScript. Baza ta jest zatem szczególnie przydatna do zarządzania dużymi ilościami informacji.

Zalety i wady relacyjnych baz danych

Relacyjne bazy danych zdobyły dużą popularność, mają też jednak swoje ograniczenia. To, co jest ich mocną stroną, może być również słabością w przypadku niektórych typów danych (np. dużych wolumenów, multimediów, obiektów).

Zalety:

  • Model tabelaryczny: jest dość prosty do wdrożenia. Umożliwia szybką i sprawną identyfikację danych klienta lub zapasów.
     
  • Niska redundancja danych: dzięki normalizacji unikasz zniekształcania informacji z bazy danych i uzyskujesz spójność.
     
  • Przetwarzanie danych ilościowych: pozwala na powiązanie wartości z atrybutami.
     
  • Znormalizowany język zapytań (SQL): aplikacje mogą być rozwijane i wykonywane w ramach różnych projektów internetowych z zachowaniem większej kompatybilności.

Wady

  • Nie wszystkie dane mogą być wyświetlane w tabelach: dane abstrakcyjne i nieustrukturyzowane nie mogą współpracować z relacyjną bazą danych.
     
  • Dane nie mogą być hierarchizowane: w przeciwieństwie do baz danych zorientowanych obiektowo. Dlatego nie można opracowywać analiz na przykład za pomocą pod-krotek lub klas krotek.
     
  • Segmentacja danych: w wyniku normalizacji następuje rozproszenie przestrzeni dyskowych, na których przechowywane są dane. Powoduje to złożone zapytania w wielu tabelach na poziomie aplikacji. Tak duża liczba jednoczesnych zapytań do kilku tabel obniża wydajność analiz i wydłuża czas obliczeń.

Generalnie, są to najpopularniejsze bazy danych na świecie. Nie są one jednak odpowiednie dla danych niejednorodnych ani w przypadku niektórych zastosowań, takich jak big data.

Relacyjne bazy danych OVHcloud

Oferujemy szeroką gamę baz danych. Dostępne są dwa modele relacyjne:

  • MySQL: to wiodąca relacyjna baza danych. Możesz ją zamówić w modelu „managed”, dzięki czemu nie będziesz musiał nią samodzielnie zarządzać ani jej monitorować.
  • PostgreSQL: model relacyjnej bazy danych zaprojektowany do obsługi dużych obciążeń. Jest on również dostępny jako zarządzana baza danych.
  • Ponadto oferujemy prywatne bazy danych SQL, takie jak MariaDB do hostingu WWW.

Zachęcamy do sprawdzenia specyfikacji wszystkich naszych zarządzanych baz danych, prostych w obsłudze i bezpiecznych. Wszystkie bazy danych są hostowane w naszych centrach danych i spełniają rygorystyczne standardy bezpieczeństwa. Dzięki temu gwarantujemy suwerenność i poufność Twoich danych.