Veri tutarlılığı, veritabanı 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ütunlar arasındaki tutarlılıktan da bahsedilebilinir.
İyi bir veritabanı yönetim sistemi veri tutarlılığı konusunda çok hassastır.
Veri Tutarlılığı
Veri tutarlılığı kavramını biraz açalım:
İlişkisel veritabanı sistemleri getirdiği büyük kolaylık ve avantajlarının yanında yumuşak karın misali noktaları vardır... Bunlardan bir tanesi veri tutarlılığı problemidir.
Mesela personelin 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. Veyahut da değiştirilse bile mesela Bilgi İşlem'in bölüm numarası 10 yapı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. Yabancı anahtar
2. Trigger
|
---|
Türler | |
---|
Kavramlar | |
---|
Nesneler | |
---|
SQL | |
---|
Bileşenler | |
---|
İlgili konular | |
---|
|