Sobes.tech
Junior

Jak je dosaženo vztahu v relační databázi?

sobes.tech AI

Odpověď od AI

Vztahy v relačních databázových systémech (RDBMS) jsou realizovány pomocí cizích klíčů (Foreign Keys).

Cizí klíč je sloupec nebo sada sloupců v tabulce, která odkazuje na primární klíč v jiné tabulce. Tímto způsobem se navazuje vztah mezi záznamy ve dvou tabulkách.

Příklady typů vztahů:

  • Jeden k mnoha (One-to-Many): Jeden záznam v první tabulce je spojen s několika záznamy ve druhé tabulce. Například, jeden oddělení může mít mnoho zaměstnanců. V tabulce Employees bude cizí klíč odkazovat na primární klíč v tabulce Departments.
  • Mnoho k mnoha (Many-to-Many): Několik záznamů v první tabulce je spojeno s několika záznamy ve druhé tabulce. Například, jeden student může studovat více kurzů a jeden kurz může studovat více studentů. To se realizuje pomocí mezitabulky (tabulky vztahů), která obsahuje cizí klíče odkazující na primární klíče obou tabulek.
  • Jeden k jednomu (One-to-One): Jeden záznam v první tabulce je spojen pouze s jedním záznamem ve druhé tabulce. Tento typ vztahu je méně běžný a často se používá pro vertikální rozdělení tabulky nebo pro ukládání volitelných dat. Realizuje se pomocí cizího klíče ve druhé tabulce, který odkazuje na primární klíč v první tabulce, často s omezením unikátnosti na cizí klíč.

Příklad tvorby tabulky s cizím klíčem v SQL:

-- Vytvoření tabulky Departments
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Primární klíč
    department_name VARCHAR(100)
);

-- Vytvoření tabulky Employees s cizím klíčem
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Sloupec pro cizí klíč
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Definice cizího klíče
);

Cizí klíče zajišťují referenční integritu dat, čímž zabraňují vzniku "mrtvých" odkazů (kdy cizí klíč odkazuje na neexistující záznam v související tabulce).