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.