Sobes.tech
Junior

Miks on tabelis vaja seost?

sobes.tech AI

Vastus AI-lt

Suhe või seos tabelite vahel andmebaasis on vajalik:

  • Andmete liigse dubleerimise vältimiseks: Selle asemel, et teavet mitmes tabelis dubleerida, salvestatakse see ühes ja teised viitavad sellele. See säästab ruumi ja lihtsustab uuendamist.
  • Andmete terviklikkuse tagamiseks: Seosed aitavad säilitada andmete kooskõla. Näiteks ei saa ühe tabeli rida kustutada, kui sellele viitab teine rida (olenevalt piirangu tüübist).
  • Päringute lihtsustamiseks: Võimaldab hõlpsasti tõmmata seotud andmeid mitmest tabelist JOIN-operatsioonide abil.
  • Andmebaasi struktuuri loomine: Peegeldab loogilist seost reaalses maailmas olevate entiteetide vahel, muutes andmebaasi struktuuri arusaadavamaks ja organiseeritumaks.

Näited seostest:

  • Üks ühest (One-to-one): Üks rida tabelis A on seotud ainult ühe reaga tabelis B ja vastupidi.
  • Üks mitmesse (One-to-many): Üks rida tabelis A võib olla seotud mitme reaga tabelis B, kuid rida tabelis B on seotud ainult ühe reaga tabelis A.
  • Mitme-mitme (Many-to-many): Rida tabelis A võib olla seotud mitme reaga tabelis B ja vastupidi. Tavaliselt realiseeritakse see vahekaartabeli kaudu.

SQL-i näide:

CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    name VARCHAR(255)
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    order_date DATE,
    customer_id INT,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id) // "Üks mitmesse" seos: üks klient võib omada mitmeid tellimusi
);