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

This article is issued from Vikipedi - version of the 2/11/2014. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.