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
);