Başvuru bütünlüğü

SQL ile İlişkisel Veritabanlarına Giriş

Timo Grossenbacher

Data Journalist

Başvuru bütünlüğü

  • Başka bir tabloyu referanslayan bir kayıt, o tabloda var olan bir kayda işaret etmelidir
  • İki tablo arasında belirtilir
  • Yabancı anahtarlarla uygulanır
SQL ile İlişkisel Veritabanlarına Giriş

Başvuru bütünlüğü ihlalleri

A tablosundan B tablosuna başvuru bütünlüğü şu durumlarda ihlal edilir...

  • ...A tablosundaki bir kaydın referans verdiği B tablosundaki kayıt silinirse.
  • ...A tablosuna, B tablosunda olmayan bir kaydı referanslayan bir kayıt eklenirse.
  • Yabancı anahtarlar ihlalleri önler!
SQL ile İlişkisel Veritabanlarına Giriş

İhlallerle başa çıkma

CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE NO ACTION
);
CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE CASCADE
);
SQL ile İlişkisel Veritabanlarına Giriş

İhlallerle başa çıkma, devamı

ON DELETE...

  • ...NO ACTION: Hata ver
  • ...CASCADE: Referans veren tüm kayıtları sil
  • ...RESTRICT: Hata ver
  • ...SET NULL: Referans sütununu NULL yap
  • ...SET DEFAULT: Referans sütununu varsayılana ayarla
SQL ile İlişkisel Veritabanlarına Giriş

Hadi bazı örneklere bakalım!

SQL ile İlişkisel Veritabanlarına Giriş

Preparing Video For Download...