Merhabalar,
Bu yazımızda veri tabanı yönetim sistemlerinin bir konusu olan veri tabanı normalizasyonundan bahsedeceğiz.
Veritabanı Normalizasyonu Nedir?
İlk olarak normalizasyon kelimesinin anlamı ile açıklayabiliriz. Normalizasyon; veri tabanının tasarım aşamasında veri tekrarını, veri kaybını veya veri yetersizliğini önlemek için gerçekleştirilen işlemlerdir. Tabloların oluşturulması, tablolar arasında artıklığı ve tutarsız bağımlılığı ortadan kaldırma normalizasyonun temel amacıdır.
Veritabanı normalleştirilmesi için birkaç kural vardır. Her kural için “normal form” ismi kullanılabilir. İlk kural eğer kullanılıyor ise veritabanının “ilk normal form” içerisinde olduğu söylenebilir. Eğer; ilk üç kural kullanılıyor ise veritabanı için “üçüncü normal formda” olarak nitelendirilir. Başka normalleştirme düzeyleri de kullanılabilir. Çoğu uygulama için en yüksek düzey üçüncü normal formdur ama daha üst seviye olan dört ve beşinci normalizasyon kuralları da bulunmaktadır.
Genel olarak değerlendirmek gerekirse normalleştirme için ek tablolar gerekir ve çoğunlukla bunun ek yük gerektirdiği yönde fikir birliği oluşabilir. Normalleştirmenin ilk üç kuralından biri ihlal edildiği takdirde; uygulamalarda artık verilerin oluşturabileceği sorunlara karşı hazır olmak gerekir.
Normalizasyon; çok fazla satır ve sütunlardan oluşan bir tabloyu veri tekrarından korumak için daha az satır ve sütun içeren tablolara ayırma işlemine verilen isim olarak nitelendirilebilir.
Bu kurallar depolanacak verilerin neler olacağını belirler ve kayıtların arasında oluşacak veri kaybı, tekrarı ve yetersizliklerin önüne geçilmesini sağlar. Normalizasyon kurallarına uygun tasarım yapılmadığında kayıtların bulunması,güncellenmesi, yeni kayıt oluşturulması gibi temel CRUD işlemlerinde sorunlar ile karşılaşılabilir.
Bu kurallar arasında bulunan üst normalizasyon kuralları, alt normalizasyon kurallarını kapsar.
NORMALİZASYONUN AMAÇLARI
Veri tabanında normalizasyonun açıklamasını yaptıktan sonra neden yapılması gerektiğine ilişkin, sebepleri ile açıklamasını yapalım.
Veri Bütünlüğünü Sağlamak: Eğer bir sütun için gereksiz veri tekrarı var ise bu sütun bir süre sonra birbirinden farklı değerler içermeye başlayacaktır. Örneğin bir veritabanı içerisinde TC Kimlik numarası birden fazla tabloda kullanıldığında veri bütünlığı sağlanmazsa zamanla aynı kişi için birden fazla kimlik bilgisi oluşacaktır. Böyle bir durulma karşı karşıya kalmamak için normalizasyon kuralları ile veri bütünlüğü oluşturulabilir.
Uygulamadan Bağımsızlık: Hazırlanacak ilişkisel model kullanılacak uygulamaya göre değil; içereceği veriye göre hazırlanması daha uygun olacaktır. Böylece; uygulama değişecek olsa bile veri modeli yeterli seviyede tutarlı olacağından sistem çalışmaya devam edecektir.
Performansı Arttırmak: Tam olarak normalleştirilmemiş veri tabanı veri tekrarını en aza indireceğiinden kullanılan disk alanı ve veritabanı boyutu da azalacaktır. Böylece veritabanı içerisinde gerçekleştirilen arama işlemleri daha optimize şekilde, hızlı gerçekleşecektir.