Baza relacyjna

Baza danych przechowująca informacje w tabelach (wierszach i kolumnach) powiązanych ze sobą za pomocą kluczy. Operuje się na niej językiem SQL.

Baza relacyjna to typ bazy danych, w której informacje trzymasz w tabelach — czyli zbiorach wierszy (rekordów) i kolumn (atrybutów). Kluczowe słowo to relacja: tabele nie żyją osobno, tylko łączą się ze sobą za pomocą kluczy. Dzięki temu zamiast jednego wielkiego arkusza pełnego powtórzeń masz porządnie rozbite, powiązane dane, po których pytasz językiem SQL. Model wymyślił Edgar F. Codd w 1970 roku i mimo wieku trzyma się świetnie — większość aplikacji, które dziś klepiesz, gada właśnie z bazą relacyjną.

Jak to działa

Każda tabela ma klucz główny (PRIMARY KEY) — unikalny identyfikator wiersza, zwykle id. Żeby połączyć tabele, w jednej z nich umieszczasz klucz obcy (FOREIGN KEY), który wskazuje na klucz główny innej tabeli. Masz tabelę users i tabelę orders? Każde zamówienie trzyma user_id wskazujące, kto je złożył. Nie kopiujesz danych klienta do każdego zamówienia — odwołujesz się do nich relacją.

Taki układ pilnuje integralności danych (nie wstawisz zamówienia dla nieistniejącego użytkownika), ogranicza redundancję (to efekt normalizacji) i pozwala łączyć tabele zapytaniami z JOIN. Wisienką jest wsparcie dla transakcji ACID — albo cała operacja przejdzie w całości, albo wcale.

Przykład z praktyki

Załóżmy, że odpalasz PostgreSQL i chcesz wyciągnąć e-maile klientów wraz z kwotą ich zamówień. Zamiast grzebać w dwóch miejscach, robisz jedno zapytanie:

SELECT u.email, o.total FROM users u JOIN orders o ON o.user_id = u.id WHERE o.total > 100;

Baza sama dopasuje wiersze po kluczu obcym i zwróci gotowy wynik. Popularne silniki relacyjne to PostgreSQL, MySQL, MariaDB, SQLite (świetna na start i do małych projektów) oraz Microsoft SQL Server.

Na co uważać

  • Brak indeksów — bez indeksu na kolumnie z WHERE czy JOIN baza skanuje całą tabelę i przy większych danych zwalnia do tempa ślimaka.
  • Mit „SQL jest przestarzały” — bazy NoSQL nie zastąpiły relacyjnych, tylko uzupełniają je tam, gdzie pasują (np. ogromna skala, luźny schemat).
  • Mylenie SQL z bazą — SQL to język zapytań, baza relacyjna to model danych. To nie to samo.

Pojęcia powiązane: SQL, klucz główny i obcy, normalizacja, JOIN, transakcje ACID, indeks, schemat, ORM, NoSQL.