Sobes.tech
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
);