Sobes.tech
Middle

Kas ir atsauces saišu integritāte?

sobes.tech AI

Atbilde no AI

Referenču integritāte ir datu īpašība relāciju datu bāzē, kas nodrošina, ka saites starp tabulām paliek derīgas. Tā novērš šādas problēmas:

  • dzēšot rindu no "vecāku" tabulas, uz kuru atsaucas rindas "atvasinātajā" tabulā;
  • mainot primāro atslēgu "vecāku" tabulā, uz kuru atsaucas rindas "atvasinātajā" tabulā, bez atbilstošas šo sašu atjaunināšanas;
  • ievietojot rindu "atvasinātajā" tabulā ar atsauci uz neeksistējošu primāro atslēgu "vecāku" tabulā.

Realizēta ar ārējām atslēgām (FOREIGN KEY).

Piemēri ārējo atslēgu ierobežojumiem:

  • ON DELETE CASCADE: dzēšot rindu no "vecāku" tabulas, attiecīgās rindas "atvasinātajā" tabulā tiek dzēstas arī.
  • ON DELETE SET NULL: dzēšot rindu no "vecāku" tabulas, attiecīgā ārējā atslēga "atvasinātajā" tabulā tiek iestatīta uz NULL.
  • ON DELETE RESTRICT: rindu dzēšana no "vecāku" tabulas ir aizliegta, ja ir saites uz to "atvasinātajā" tabulā.
  • ON UPDATE CASCADE: atjauninot primāro atslēgu "vecāku" tabulā, attiecīgie ārējie atslēgas "atvasinātajā" tabulā tiek atjaunināti.
-- Piemēra tabula "users" (vecāki)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(255) NOT NULL
);

-- Piemēra tabula "orders" (atvasinātā) ar ārējo atslēgu
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
        ON DELETE CASCADE /* Piemērs, kā izmantot ierobežojumu */
        ON UPDATE CASCADE /* Piemērs, kā izmantot ierobežojumu */
);