Veri Tabanı Normalleştirme (Normalizasyon)
Veri Tabanı Normalleştirme (Normalizasyon) Nedir? Veri Tabanı Normalleştirme (Normalizasyon) Nasıl Yapılır? Veri Tabanı Normalleştirme (Normalizasyon) hakkındaki her şeye bu konumuzda ulaşabilirsiniz.
Veri Tabanı Normalleştirme (Normalizasyon)
Normalleştirme, bir veri tabanındaki verileri düzene koyma işlemidir.
Veri tabanını tasarlarken aynı verinin değişik yerlerde tekrarlanması ihtimali vardır. Bu durumda veri ekleme, silme ve güncelleme işlemlerinde aşağıdaki problemler oluşabilir:
- Veri tekrarı (istikrarsızlık, tutarsızlık oluşturabilir.)
- Veri kaybı
- Veri yetersizliği
- İşlevliğini yitirmiş veriler
Normalleştirme bu tür problemleri önlemeye yarar.
Veri Tekrarı Örneği
Aşağıdaki Dersler tablosunda öğrencilerin aldığı dersler gösterilmektedir.
Veri Tekrarı Problemi
Veri tekrarlarının sebep olduğu problemler:
Güncelleme
- Bir öğrencinin adı değiştirilmesi gerektiğinde, öğrenci adı geçen tüm satırları değiştirmek gerekir.
Silme
- Bir öğrencinin ders kayıtları silindiğinde öğrenci bilgileri de (ÖğrenciNo ve İsim) silinmiş olacak veya ÖğrenciNo ve İsim kayıtlarda kalırsa DersNo, Ders Adı NULL olması gerekecektir.
Ekleme
- Yeni bir öğrenci eklendiğinde, ders kaydı olmadığı için DersNo ve DersAdı bilgileri NULL olmak zorunda olacaktır.
- Bu tür sorunları engellemek için tabloayrıştırılması (decomposition) yapılır.
Veri Tekrarın Önlenmesi
Tablo Ayrıştırılması (Decomposition)
Fonksiyonel Bağımlılık
Bir ilişkide farklı satırlarda X değerleri aynı olduğunda Y değerlerinin de aynı olmasıdır.
- X → Y şeklinde olur. (Y, X’e fonksiyonel bağımlı)
- X, Y : öznitelik (attribute) kümeleri
- Örnek X = ÖğrenciNo,
Y = İsim
Fonksiyonel Bağımlılık Örnekleri
Kayıt (ÖğrenciNo, İsim, DersNo, DersAdı, Dönem, Not)
- ÖğrenciNo → İsim
burada isim alanı ÖğrenciNo alanına fonksiyonel bağımlıdır.
- DersNo → DersAdı aynı şekilde
DersAdı DersNo alanına fonksiyonel bağımlıdır.
Normal Formlar
1. Normal Form(1NF):
Veri Tabanlarında daha az yer kaplaması için geliştirilen ilk normalizasyon kuralıdır.
Kurallar:
- Veri tabanlarında bulunan tablolar ilişkilendirilebilir bir şekilde tasarlanmalıdır.
- Her bir alan (nitelik) tek bir değer içermelidir. Birden fazla değer tek bir alanda tutulamaz.
- Birbiriyle alakalı veri gruplarını başka bir tabloya taşımak ve her bir satırı (kaydı) tek olarak (birincil anahtar) tanımlamak gerekir.
2. Normal Form(2NF):
Birbiri ile alakalı alanları başka bir tabloya aktarmak ve bu alanlardan herhangi bir anahtara sahip olmayanları birincil anahtara bağımlı kılmaktır.
3. Normal Form (3NF):
Birincil anahtara tam olarak bağlı olmayan tekrar eden alanlar çıkarılarak bir tablo oluşturulabilir.
Boyce-Code Normal Form(BCNF)
Eğer bir tablo 3NF kuralına uygunsa ve her bir belirleyici aday anahtar ise tablo BCNF kuralına uygundur.
Veri Tabanı Normalizasyonu
Birinci Normal Form
Örnekteki tablo Birinci Normal Form’dadır. Tekrarlar vardır.
İkinci Normal Form
1NF’deki aşağıda gösterilen Kayıtlar tablosu 2NF’ye dönüştürülebilir.
Bu tabloda aşağıdaki fonksiyonel bağımlılıklar mevcuttur:
- Öğrenci No → İsim
- Bölüm Kodu → Bölüm
- Ders No → Ders Adı
- Öğrenci No, Ders No → Not
2NF’de kendisi anahtar olmayan tüm sütunlar anahtara bağlanarak yeni tablolar yaratılır.
Örnekteki tabloda anahtar Öğrenci No, Ders No’dur.
İkinci Normal Formun Sorunları
Elimizdeki Kayıtlar tablosu 2NF, fakat 3NF henüz uygun değil. Geçişken bir ilişki var: Öğrenci No → Bölüm Kodu ve Bölüm Kodu → Bölüm
Satır ekleme sorunu: Bir bölüm eklemek için bir öğrenci yaratmak gerekecek.
Satır silme sorunu: Bir öğrenci silindiğinde, bölüm bilgisinin de yok olma durumu olabilir.
Üçüncü Normal Form
Geçişken ilişkiler kaldırıldığında 3NF oluşmuş olur.
Boyce-Codd Normal Formu
Kendisi anahtar olmayan özellikler, anahtara fonksiyonel olarak bağlı bulunmamalıdır.
Burada Öğrenci No, Ders Kodu anahtar olarak görünmektedir. Fakat Danışman → Öğrenci No şeklinde bir ilişki de vardır.
Danışmanın ise birden fazla öğrencisi olabilir.
Bu durumda 3NF sağlanıyor, fakat sorunlar var, yeni bir danışman eklemek için öğrenci şart. Ayrıca bir öğrenci silindiğinde danışman da ortadan kalkabilir. Çözüm = tablo ayrıştırma
Normalizasyon Örneği
Gereksiz Ayrıştırma
Kötü Ayrıştırma
Normal Form Özellikleri
Genellikle 3NF sağlandığında tablomuz son haline ulaşmış durumdadır.
Nadiren de olsa 3NF sağlanmış haldeyken BCNF’de sorun olur.
Tüm tablolara normalizasyon işlemlerinin uygulanmasının ardından veritabanı kullanıma hazırdır.
Tepkiniz Nedir?