Veritabanı Yönetim Sistemleri-I Ders 6 Constraints (Kısıtlar) Dr. Akın Özçift Dr. Mustafa Karabulut
Constraints (Kısıtlar) VTYS veri bütünlüğünü ve iş mantığını sağlamak için veriler üzerinde çeşitli kurallar konulmasına izin verir. Bu kurallar ile aşağıdakiler sağlanır: Entity integrity (Varlık bütünlüğü) Tablolardaki satırların birbirinden ayrılabilirliği, sadece spesifik bir satır üzerine işlem yapabilme Referential integrity (Referansal bütünlüğü) Mantıksal ilişkili olan tablolar arasında bütünlük olması ve ilgisiz satırlara izin verilmemesi Domain integrity (Alan bütünlüğü) İş mantığı gereği verilerin belli kurallara uyularak girilmesini sağlar
Constraints (Kısıtlar) MS SQL Server bu işlevi sağlamak için 6 tür kısıdı destekler: UNIQUE Constraints (Tekillik ) CHECK Constraints (Değer kontrolü) DEFAULT Constraints (Varsayılan) NOT NULL Constraints (Boş değer izni/engeli) PRIMARY KEY Constraints (Birincil Anahtar ) FOREIGN KEY Constraints (Yabancı Anahtar)
Constraints (Kısıtlar) UNIQUE Constraint Herhangi bir alanda değer tekrarını engeller Bu özelliği bakımından Primary Key ile benzeşir, fakat PK tanımlanınca sütunda NULL değere izin verilmez, UC ise verir PK tabloda bir tane tanımlanabilir, UC birden fazla tanımlanabilir
Constraints (Kısıtlar) Örneğin musteriler tablosunda must_id PK olarak tanımlanırken, must_email UC olarak tanımlanmaktadır Çünkü must_email bilgisi tekrar etmemelidir, zaten tabloda bir PK olduğu için de mecburen UC olarak tanımlanır
Constraints (Kısıtlar) Bunun için tablo tasarımı (Design) ekranında alanlara sağ tuş tıklanıp, gelen menüde “Indexes/Keys” seçeneği seçilir
Constraints (Kısıtlar) Önce “Add” ile yeni bir index eklenir, sonra da sağ taraftan sütun adı, index türü şekilde görüldüğü gibi seçilir
Constraints (Kısıtlar) CHECK Constraints (Değer kontrolü) Bir sütun üzerindeki değerin belli bir aralıkta veya belli bir değere eşit olmasını sağlar Örneğin fiyat isimli bir sütunun değeri 0 ile 50 arasında olunması isteniyorsa, kural şöyle tanımlanır urun_fiyat >= 0 AND urun_fiyat <= 50 (veya alternatif olarak) urun_fiyat BETWEEN 0 AND 50 Müşteri ülkesi sadece “Türkiye” olması gerekiyorsa must_ulke = ‘Türkiye’ Şeklinde kurallar ifade edilir
Constraints (Kısıtlar) Sağ tuş menüsünden “Check constraints” seçilir ve gelen ekranda ilgili kural yazılır
Constraints (Kısıtlar) Add tuşu ile yeni eklenir Expression kısmına ilgili ifade (kural) yazılır
Constraints (Kısıtlar) Veri girilirken ilgili kuralın devrede olduğunu görüyoruz