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
Employeesbude cizí klíč odkazovat na primární klíč v tabulceDepartments. - 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).