Bir İlişkisel Veritabanı Şemasındaki Bütünlük Kısıtlamaları
- Anahtar Kısıtlaması; Her ilişki şemasındaki aday anahtar nitelikleri belirtir ve herhangi bir ilişki örneğindeki her tuple için bu niteliklerin değerleri tek olmak zorundadır.
- Varlık (entity) Bütünlük Kısıtlaması: Hiçbir birincil anahtar değeri boş olamaz.
- Referanslı (referential) Bütünlük Kısıtlaması: Eğer bir R ilişkisindeki bir tuple öteki bir S ilişkisine referans ediyorsa o ilişkide var olan bir tuple’a referans etmek zorundadır. Bu kısıtlama iki ilişki arasında tanımlıdır ve bu ilişkilerdeki tuplelar arasındaki tutarlılığı sağlamaya çalışır. İki ilişki arasındaki referanslı bütünlük kısıtı yabancı anahtar (foreign key), fk, şartı ile belirtilir. Eğer R’deki bir nitelikler kümesi aşağıdaki şartları sağlarsa, bunlar R için fk’dir:
- R’deki fk’nin ve referans ettiği S’deki pk’nin nitelikleri aynı alan değerlerine sahipse o zaman fk nitelikleri S ilişkisine referans ediyor demektir
- R’deki bir t1 tuple’ındaki fk değeri ya S’deki t2 tuple’ındaki pk’nin değeri olarak vardır ya da boştur(null). İlk seçenekte, t1 [fk] = t2 [pk] dir ve t 1 tuple’ı t2 tuple’ına referans ediyor denir.
- Anlamsal bütünlük kısıtı: Değişik şekillerde olabilir. Örnek: “Bir mühendis bir projede haftada 60 saatten fazla çalışamaz.”
Örnek:
ŞEKİL 4.2 – Referanslı bütünlük kısıtlamasına örnek
ö_no niteliği Kayıt_Dosya ilişkisinde yabancı anahtar, öğrenci ilişkisinde birincil anahtardır. Kayıt_Dosya ilişkisinin birincil anahtarı {ö_no, d_no} dur.
Referanslı bütünlük kısıtını sağlamak için eğer öğrenci ilişkisinde olmayan bir öğrencinin Kayıt_Dosya’ya girmek istemesinin reddedilmesi gereklidir. Günümüz VTYS’lerinin önemli bir kısmı bunu sağlayabilmektedir.
Varlık bütünlük kısıtı ile ö_no değeri olmayan bir öğrencinin öğrenci ilişkisine girişinin yapılamaması kastedilmektedir.