Veritabanında Kısıtlamalar
Veritabanına bilgiler ne kadar düzenli girilirse veri tabanının performansı o kadar iyi olur. Veri tabanına verilerin düzenli girilmesini sağlayan yapı kısıtlamalardır. Kısıtlamalar sayesinde istediğimiz alanların boş geçilememesini, istediğimiz alanlarda verilerin tekrar etmemesini ve bunlara benzer birçok işlemi gerçekleştirebilir,veri tabanına kaydedilecek verilerin daha doğru ve tutarlı olmasını sağlayabiliriz.
Kısıtlamalar ikiye ayrılır.
- Anahtar Kısıtlamaları
- Birincil Anahtar Kısıtlaması
- Yabancı Anahtar Kısıtlaması
- Composite Anahtar Kısıtlaması
- Veri Kısıtlamaları
- Not Null (Boş Geçilemez) Kısıtlaması
- Unique(Benzersiz) Kısıtlaması
- Default(Varsayılan) Kısıtlaması
- Check(Kontrol) Kısıtlamaları
1. Anahtar Kısıtlamaları
Tabloyu gelen olarak etkileyen kısıtlamalardır.
a. Birincil Anahtar Kısıtlaması
Her tabloda mutlaka bir birincil anahtar olması tavsiye edilir. Birincil anahtar tabloyu iki şekilde kısıtlar.
- Birincil anahtar olan alanda daha önceden girilen bir veri bir daha girilemez.
- Birincil anahtar olan alan boş geçilemez.
Veri tabanı programları birincil anahtar oluşturmayı bize seçenek olarak bırakır. Ama yukarıda da belirtildiği gibi her tablonun bir birincil anahtarı olmalıdır. Çünkü ilişkiler birincil anahtarlar üzerinden kurulur. Birincil anahtarın başka bir faydası da visual studio gibi programların veri kayıtlarını daha hızlı yapmamızı sağlayan otomatik kod üretmesini sağlamasıdır.
b. Yabancı Anahtar Kısıtlaması
İki tablo arasında ilişki kurmak için birinci tablonun birincil anahtarı ile diğer tablonun herhangi bir alanı birleştirilerek yapılır. İkinci tablonunda birincil anahtarı ile birleştirilmiş ise bire bir ilişki, birincil anahtar dışındaki bir alanı ile birleştirilmiş ise bire sonsuz dediğimiz ilişki oluşur. Burada yabancı anahtar ikinci tabloda seçilen alandır. Yabancı anahtar bizi bilgileri başka bir tablodan almaya zorlar. Bilgi diğer tabloda kayıtlı değil ise veri girişine izin verilmez.
Örnek üzerinde açıklayacak olursak;
Yukarıdaki örnekte Personeli örneğin satış departmanına atamak isteyelim. Bu işlemi yapabilmek için öncelikle departman tablosunda Satış Departmanı eklenmelidir. Aksi taktirde personeli satış departmanına atayamayız.
Birincil anahtarlar hiçbir zaman NULL(boş) veya birbiri ile ayni olan değerleri içeremezken, yabancı anahtarlar birbirleri ile aynı olan değerler içerebilirler ve boş geçilebilirler.
Bir tabloda birden fazla yabancı anahtar da kullanılabilir.
c. Composite(Birleşik) Anahtar Kısıtlaması
Bir tabloda iki veya daha fazla sayıda birincil anahtar kullanılmasıdır.
ogrno | dersno | vize | final |
5 | 5 | 50 | 70 |
4 | 5 | 70 | 80 |
5 | 4 | 40 | 70 |
5 | 5 | 50 | 80 |
Yukarıdaki tabloya benzer durumlarda iki birincil anahtar kullanmak gerekir. Her öğrencinin her dersten bir tane vize ve final notu olabilir. ogrno ve dersno alanları aynı anda birincil anahtar yaparak bunu yapabiliriz. Bir tabloda aynı anda iki birincil anahtar yapılırsa bu iki alana girilen değer iki satırda aynı olamaz. Yukarıdaki tabloda sadece son satırdaki veri girilemez çünkü daha önce 5 nolu öğrencinin 5 nolu dersi girilmiş. Bu tabloda sadece ogrno birincil anahtar yapılsaydı o zaman öğrencilerin sadece tek bir dersinin notunu girebilirdik, sadece dersno alanı birincil anahtar yapılsaydı o zaman da sadece bir öğrencinin derslerinin notunu girebilirdik.
2. Veri Kısıtlamaları
a) Default(Varsayılan Değer) Kısıtlaması
Bir alanın değeri boş geçildiğinde o alana varsayılan değer olarak ne yazıldıysa veri tabanına o kaydedilir.
Null değerler başka bir alanla işlem yapıldığında diğer alanın değerini yutar ve sonuç yine null olur. Bu yüzden genellikle sayılan alanlarda varsayılan değer olarak 0(sıfır) yazılır, metinsel alanlarda da “” (çift tırnak) yazılır ki veri tabanına null kaydedilmesin.
b) Not Null(Boş Geçilemez) Kısıtlaması
Bir alan boş geçilmemesi istendiğinde yapılan kısıtlamadır.
c) Unique(Eşsiz Değer) Kısıtlaması
Birincil anahtar dışında bir alana, girilen bir değerin bir daha girilmemesi isteniyorsa o alana unique kısıtlaması uygulanır. Birincil anahtar alanlar zaten unique özelliğine sahiptir bir daha unique kısıtlaması yapılması gereksiz olur. Genellikle mail,telefon numarası gibi alanlara uygulanır.
Bir tabloda bir den fazla birincil anahtar olduğunda birincil anahtar olanlar aynı anda tekrar edemiyordu(bkz Composite Anahtar). Unique alanlar böyle değildir ne kadar unique alan olursa olsun her unique alan sadece kendinden sorumludur.
d) Check(Kontrol) Kısıtlaması
Direk veri üzerinde yapılan kısıtlamadır. Geniş bir kullanım alanı vardır. Bu kısıtlama ile yapılabileceklerden bazıları aşağıda listelenmiştir.
- Metinsel bir alanın karakter sayısını sınırlandırabilirsiniz. (Örn: Tcno alanının 11 karakter olması)
- Sayısal bir alanın belli bir değer den büyük veya küçük olması sağlana bilir. (Örn: Sınav notunun 0 ile 100 arasında olması.
- Metinsel bir alanda belli bir karakterin olup olmadığı sorgulanabilir.(Örn: Mail alanında @ işaretinin olup olmadığı)
- Sayısal bir alanın tek, çift veya her hangi bir sayının katı olması.
- Tarihsel bir alanın belli tarihler arasında olması, vb….
[…] Veritabanı kısıtlamaları […]