Veri tutarlılığı
Veri tutarlılığı, veri tabanı sistemlerinde verilerin mantıksal tutarlılık kavramını ifade eder. Bu diğer tablolardaki kayıtlar ile ilgili bir tutarlılık olabileceği gibi aynı tablodaki farklı sütünlar arasındaki tutarlılıktan da bahsedilebilinir.
İyi bir veri tabanı yönetim sistemi veri tutarlılığı konusunda çok hassastır.
Veri Tutarlılığı
Veri tutarlılığı kavramını biraz açalım:
İlişkisel veri tabanı sistemleri getirdiği büyük kolaylık ve avantajlarının yanında yumuaşak karın misali noktaları vardır... Bunlardan bir tanesi veri tutarlılığı problemidir. Mesela personellerin tutulduğu bir tablomuz olsun. Bu tabloda her personelin bölümünü tutacak olalım. Eğer tablomuz
PERSONEL (PERSONEL_NO, PERSONEL_ADI, BOLUM_ADI)
şeklinde bir yapıda olsaydı zaten her personelin bölümünün adını personel tablosuna yazsaydık yanlış bir veritabanı tasarımı yapmış olurduk fakat veri tutarlılığı problemimiz olmazdı. Doğru bir veritabanı tasarımı yapmak için ayrı bir bölüm tablosu oluşturmalıyız. Yani yeni durumda tablolar şöyle olur:
PERSONEL (PERSONEL_NO, PERSONEL_ADI, BOLUM_NO)
BOLUM (BOLUM_NO, BOLLUM_ADI)
Bu durumda bizi bekleyen tehlike veri tutarlılığı problemidir. Yani eğer 1 numaralı bölüm "Bilgi işlem" ise ve PERSONEL tablosundaki bazı kayıtların BOLUM_NO alanları da 1 ise o zaman BOLUM tablosundaki 1 numaralı bölümün kesinlikle silinmemesi gerekmektedir. Ya da BOLUM_NO alanının değiştirilmemesi gerekmektedir. Veyahutta değiştirilse bile mesela Bilgi İşlem'in bölüm numarası 10 yappılırsa o zaman PERSONEL tablosundaki BOLUM_NO alanı 1 olanların da tamamının 10 yapılması gerekir. İlişkisel veritabanlarında bu durum veri tutarlılığı olarak adlandırılır. Bu veri tutarlılığını sağlamanın en doğru yolu bu işin veritabanı düzeyinde yapılmasıdır. Uyguluma katmanında bu işin yapılması da uygulanan bir yöntem olmakla birlikte doğru değildir. Çünkü o uygulama dışında veritabanına yapılacak erişimlerde veri tutarlılığı riske atılmış olacaktır. Veritabanı düzeyinde veri tutarlılığı sağlamak için de iki farklı yöntem söz konusudur.
1. Foreign key
2. Trigger