Sobes.tech
Middle

İstinad əlaqələrinin bütövlüyü nədir?

sobes.tech Süni İntellekt

AI-dan cavab

İstinad bütövlüyü (Referential Integrity), əlaqəli verilənlər bazasında məlumatların xüsusiyyətidir və cədvəllər arasındakı istinadların düzgün qalmasını təmin edir. Bu aşağıdakı problemlərin qarşısını alır:

  • "Valideyn" cədvəlindən bir sətir silindikdə, ona istinad edən "Uşaq" cədvəlindəki sətirlər də silinir.
  • "Valideyn" cədvəlindəki birincil açar dəyişdirildikdə, ona istinad edən "Uşaq" cədvəlindəki istinadlar da yenilənir.
  • "Uşaq" cədvəlində, mövcud olmayan birincil açara istinad edən sətir əlavə edilir.

Bu, xarici açarlar (FOREIGN KEY) vasitəsilə həyata keçirilir.

Xarici açarlar üçün məhdudiyyət nümunələri:

  • ON DELETE CASCADE: Valideyn cədvəlində sətir silindikdə, müvafiq "Uşaq" cədvəlindəki sətirlər də silinir.
  • ON DELETE SET NULL: Valideyn cədvəlində sətir silindikdə, "Uşaq" cədvəlindəki müvafiq xarici açar NULL olaraq təyin edilir.
  • ON DELETE RESTRICT: Valideyn cədvəlindəki sətir silinməsi qadağandır, əgər ona istinadlar mövcuddursa.
  • ON UPDATE CASCADE: Valideyn cədvəlindəki birincil açar yeniləndikdə, "Uşaq" cədvəlindəki müvafiq xarici açarlar da yenilənir.
-- "users" cədvəli nümunəsi (valideyn)
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(255) NOT NULL
);

-- "orders" cədvəli nümunəsi (uşaq) və xarici açar ilə
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 /* Məhdudiyyət nümunəsi */
        ON UPDATE CASCADE /* Məhdudiyyət nümunəsi */
);