Veri Bütünlüğü Nedir?
Veri bütünlüğü kısaca verilerin doğruluğunu ve tutarlılığını ifade eden bir terimdir.
Veritabanları yaratılırken veri bütünlüğüne ve bunun nasıl sürdürüleceğine dikkat edilmelidir. İyi bir veritabanı, veri bütünlüğünü zorunlu kılar.
Örneğin, bir kullanıcı yanlışlıkla tarih alanına bir sayı girmeye çalışabilir. Sistem veri bütünlüğüne göre yapılmışsa, kullanıcının bu hataları yapması engellenecektir.
Veri bütünlüğünü korumak, verilerin bozulmadan ve değişmeden kalmasını sağlamak anlamına gelir. Buna verileri depolama, güncellemeler, aktarımlar, yedeklemeler vb. dahildir. Veriler her işlendiğinde bozulma riski vardır.
Veri Bütünlüğü Türleri
Veritabanında, veri bütünlüğü genellikle aşağıdaki 4 türden oluşur.
- Varlık bütünlüğü (Entity integrity)
- Referans bütünlüğü (Referential integrity)
- Etki alanı bütünlüğü (Domain integrity)
- Kullanıcı tanımlı bütünlük (User-defined integrity)
1 - Varlık Bütünlüğü: Varlık bütünlüğü, her satırı tabloda benzersiz olacak şekilde tanımlar. Hiçbir iki sıra aynı olamaz. Bunun için bir birincil anahtar (primary key) tanımlanabilir. Birincil anahtar alanı benzersiz bir tanımlayıcı içerir (unique identifier). Hiçbir iki satır aynı benzersiz tanımlayıcıyı içeremez.
2 - Referans bütünlüğü: Referans bütünlüğü ilişkilerle ilgilidir. İki veya daha fazla tablonun bir ilişkisi olduğunda, yabancı anahtar (foreign key) değerinin her zaman birincil anahtar değeriyle eşleşmesini sağlanmalıdır. Böylece birincil tabloda ilişkili kayıt yoksa ilgili tabloya kayıt eklenmesinin, eşleşen ilgili kayıtlar varsa birincil tablodan kayıtların silmesinin önüne geçilir.
3 - Etki Alanı Bütünlüğü: Belirli bir sütun için girişlerin geçerliliği ile ilgilidir. Bir sütun için uygun veri türünü seçmek, etki alanı bütünlüğünü korumanın ilk adımıdır. Diğer adımlar, veri formatını tanımlamak ve/veya olası değer aralığını kısıtlamak için uygun kısıtlamaların ve kuralların ayarlanmasını içerebilir.
4 - Kullanıcı Tanımlı Bütünlük: Kullanıcının diğer üç veri bütünlüğü türünün kapsamadığı iş kurallarını veritabanına uygulamasına olanak tanır.