Junior
Proč je v tabulce potřeba relace?
sobes.tech AI
Odpověď od AI
Vztah, nebo spojení mezi tabulkami v databázi, je nezbytné pro:
- Odstranění nadbytečnosti dat: Místo duplikace informací v několika tabulkách jsou uloženy v jedné, a ostatní na ně odkazují. To šetří místo a zjednodušuje aktualizace.
- Zajištění integrity dat: Vztahy pomáhají udržovat konzistenci dat. Například nelze smazat řádek v jedné tabulce, pokud na něj odkazuje jiný řádek (v závislosti na typu omezení).
- Zjednodušení dotazů: Umožňuje snadno získat související data z několika tabulek pomocí operací JOIN.
- Vytvoření struktury databáze: Odráží logický vztah mezi entitami reálného světa, což činí strukturu databáze srozumitelnější a organizovanější.
Příklady typů vztahů:
- Jeden k jednomu (One-to-one): Řádek v tabulce A je spojen pouze s jedním řádkem v tabulce B, a naopak.
- Jeden k mnoha (One-to-many): Řádek v tabulce A může být spojen s několika řádky v tabulce B, ale řádek v B je spojen pouze s jedním v A.
- Mnoho k mnoha (Many-to-many): Řádek v tabulce A může být spojen s několika řádky v tabulce B, a naopak. Obvykle se realizuje přes prostřední tabulku.
Implementace na příkladu SQL:
CREATE TABLE zákazníci (
zakaznik_id INT PRIMARY KEY,
jmeno VARCHAR(255)
);
CREATE TABLE objednávky (
objednavka_id INT PRIMARY KEY,
datum_objednavky DATE,
zakaznik_id INT,
FOREIGN KEY (zakaznik_id) REFERENCES zákazníci(zakaznik_id) // Vztah "jeden k mnoha": jeden zákazník může mít mnoho objednávek
);