Sobes.tech
Junior

Kuidas saavutatakse suhe relatsioonandmebaasis?

sobes.tech AI

Vastus AI-lt

Suhted relatsioonandmebaasides saavutatakse väliste võtmepäringute (Foreign Keys) abil:

Väline võti - see on veerg või veerude kogum ühes tabelis, mis viitab teise tabeli primaarvõtmele (Primary Key). Nii luuakse seos kahe tabeli kirje vahel:

Seoste tüüpide näited:

  • Üks-mitmele (One-to-Many): Üks kirje esimeses tabelis on seotud mitme kirje teises tabelis. Näiteks võib üks osakond omada palju töötajaid. Employees tabelis on väline võti, mis viitab Departments tabeli primaarvõtmele:
  • Mitmele-mitmele (Many-to-Many): Mitmed kirjed esimeses tabelis on seotud mitme kirje teises tabelis. Näiteks võib üks õpilane õppida mitmes kursuses ning üks kursus võib olla õppimiseks mitme õpilase poolt. Selleks kasutatakse vahelist tabelit, mis sisaldab mõlema tabeli välist võtit:
  • Üks-ühele (One-to-One): Üks kirje esimeses tabelis on seotud ainult ühe kirje teises tabelis. See on harvemini kasutatav seos ja sageli kasutatakse tabeli vertikaalseks jagamiseks või valikuliste andmete salvestamiseks. Seda rakendatakse välist võtit teises tabelis, mis viitab esimese tabeli primaarvõtmele, sageli unikaalse piiranguga välimisele võtmele:

SQL-i näide välimise võtme loomise kohta:

-- Loome `Departments` tabeli
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Primaarvõti
    department_name VARCHAR(100)
);

-- Loome `Employees` tabeli välimise võtmega
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Väline võti
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Väline võtme määratlus
);

Väline võti tagab andmete viidete terviklikkuse, vältides "ripuvad" seoseid (kui väline võti viitab mitteolemasolevale kirjele).