Sobes.tech
Junior

Kodėl lentelėje reikalinga ryšys?

sobes.tech AI

Atsakymas iš AI

Ryšys, arba ryšys tarp lentelių duomenų bazėje, yra būtinas:

  • Dublikatų pašalinimas: Vietoj informacijos dubliavimo keliuose lentelėse, ji saugoma vienoje, o kitos nuorodoje į ją. Tai taupo vietą ir palengvina atnaujinimus.
  • Duomenų vientisumo užtikrinimas: Ryšiai padeda išlaikyti duomenų nuoseklumą. Pavyzdžiui, negalima ištrinti eilutės vienoje lentelėje, jei kita į ją nuoroda (priklausomai nuo apribojimo tipo).
  • Užklausų supaprastinimas: Leidžia lengvai gauti susijusius duomenis iš kelių lentelių naudojant JOIN operacijas.
  • Duomenų bazės struktūros sukūrimas: Atspindi loginį ryšį tarp realaus pasaulio objektų, padarydama duomenų bazės struktūrą aiškesnę ir organizuotesnę.

Pavyzdžiai ryšių tipų:

  • Vienas su vienu (One-to-one): Viena eilutė A lentelėje susijusi tik su viena eilute B lentelėje, ir atvirkščiai.
  • Vienas su daugeliu (One-to-many): Viena eilutė A lentelėje gali būti susijusi su keliomis eilutėmis B lentelėje, bet eilutė B susijusi tik su viena A eilute.
  • Daugiau su daugiau (Many-to-many): Viena eilutė A lentelėje gali būti susijusi su keliomis eilutėmis B lentelėje, ir atvirkščiai. Paprastai tai įgyvendinama per tarpinę lentelę.

SQL pavyzdys įgyvendinimui:

CREATE TABLE klientai (
    klientas_id INT PRIMARY KEY,
    vardas VARCHAR(255)
);

CREATE TABLE užsakymai (
    užsakymas_id INT PRIMARY KEY,
    užsakymo_data DATE,
    klientas_id INT,
    FOREIGN KEY (klientas_id) REFERENCES klientai(klientas_id) // "Vienas su daugeliu": vienas klientas gali turėti daug užsakymų
);