Relacja w bazie danych

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Czym jest relacja w bazie danych?

Relacja w bazie danych to logiczne powiązanie między tabelami. Dzięki relacjom dane mogą być przechowywane w osobnych tabelach, ale nadal pozostają ze sobą powiązane.

Przykład: w bazie sklepu tabela klienci może być powiązana z tabelą zamowienia, ponieważ każde zamówienie należy do konkretnego klienta.

Jak tworzy się relację?

Najczęściej relację tworzy się za pomocą:

  • klucza głównego — jednoznacznie identyfikuje rekord w tabeli,
  • klucza obcego — wskazuje rekord z innej tabeli.

Przykład:

CREATE TABLE klienci (
  id INT PRIMARY KEY,
  imie VARCHAR(50)
);

CREATE TABLE zamowienia (
  id INT PRIMARY KEY,
  klient_id INT,
  FOREIGN KEY (klient_id) REFERENCES klienci(id)
);

W tym przykładzie kolumna zamowienia.klient_id wskazuje na kolumnę klienci.id. Oznacza to, że zamówienie jest przypisane do konkretnego klienta.

Rodzaje relacji

Najczęściej wyróżnia się:

  • jeden do jednego (1:1) — jeden rekord z tabeli A odpowiada jednemu rekordowi z tabeli B,
  • jeden do wielu (1:N) — jeden rekord z tabeli A może mieć wiele powiązanych rekordów w tabeli B,
  • wiele do wielu (N:M) — wiele rekordów z tabeli A może być powiązanych z wieloma rekordami z tabeli B; zwykle wymaga tabeli pośredniej.

Ważne rozróżnienie

W pytaniach egzaminacyjnych relacja jest zwykle rozumiana jako logiczne połączenie tabel. Nie należy mylić jej z samym kluczem głównym ani z instrukcją JOIN. JOIN służy do odczytywania danych z powiązanych tabel, ale sama relacja istnieje na poziomie struktury bazy danych.