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