Sobes.tech
Junior

Ako sa dosahuje vzťah v relačnej databáze?

sobes.tech AI

Odpoveď od AI

Vztahy v systémoch relačných databáz (RDBMS) sa dosahujú pomocou cudzích kľúčov (Foreign Keys).

Cudzí kľúč je stĺpec alebo súbor stĺpcov v tabuľke, ktorý odkazuje na primárny kľúč v inej tabuľke. Týmto spôsobom sa vytvára vzťah medzi záznamami v dvoch tabuľkách.

Príklady typov vzťahov:

  • Jeden k mnohým (One-to-Many): Jeden záznam v prvej tabuľke je spojený s viacerými záznamami v druhej tabuľke. Napríklad, jeden oddelenie môže mať veľa zamestnancov. V tabuľke Employees bude cudzí kľúč odkazovať na primárny kľúč v tabuľke Departments.
  • Mnoho k mnohým (Many-to-Many): Viaceré záznamy v prvej tabuľke sú spojené s viacerými záznamami v druhej tabuľke. Napríklad, jeden študent môže študovať viac kurzov a jeden kurz môže študovať viac študentov. To sa realizuje pomocou medzičlánkovej tabuľky (tabuľky vzťahov), ktorá obsahuje cudzie kľúče odkazujúce na primárne kľúče oboch tabuliek.
  • Jeden k jednému (One-to-One): Jeden záznam v prvej tabuľke je spojený iba s jedným záznamom v druhej tabuľke. Tento typ vzťahu je menej bežný a často sa používa na vertikálne rozdelenie tabuľky alebo na ukladanie voliteľných údajov. Realizuje sa pomocou cudzieho kľúča v druhej tabuľke, ktorý odkazuje na primárny kľúč v prvej, často s obmedzením jedinečnosti na cudzom kľúči.

Príklad vytvorenia tabuľky s cudzím kľúčom v SQL:

-- Vytvoríme tabuľku Departments
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Primárny kľúč
    department_name VARCHAR(100)
);

-- Vytvoríme tabuľku Employees s cudzím kľúčom
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Stĺpec pre cudzí kľúč
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Definícia cudzieho kľúča
);

Cudzie kľúče zabezpečujú referenčnú integritu dát, čím zabraňujú vytváraniu "strašidelných" väzieb (keď cudzí kľúč odkazuje na neexistujúci záznam v súvisiacej tabuľke).