BSM211 Veritabanı Yönetim Sistemleri - Celal ÇEKEN, İsmail ÖZTEL, Veysel Harun ŞAHİN
- Normalizasyon
- Normalizasyon Neden Yararlıdır?
- Birinci Normal Form (1NF)
- Fonksiyonel Bağımlılık
- İkinci Normal Form (2NF)
- Üçüncü Normal Form (3NF)
- 1., 2. ve 3. Normal Formlar
- Örnekler
- Kaynaklar
-
İyi bir veritabanı tasarımı, düzenli ve sağlam tablo tasarımlarını gerektirir.
-
Normalizasyon, veri fazlalıklarını en aza indirerek veri düzensizliklerinin (data anomaly) önüne geçebilmek için tablo yapılarını değerlendirme ve düzeltme işlemi olarak tanımlanabilir.
-
Normalizasyon işlemi normal form adı verilen seri işlemlerden meydana gelir. 1NF, 2NF, 3NF, 4NF
-
2NF 1NF den, 3NF 2NF den, ve 4NF 3NF den daha iyidir.
-
Her tasarım için en yüksek NF daha iyi sonuç verir denemez. Yüksek başarıma ihtiyaç duyulan bazı durumlarda normal formun (NF) düşürülmesi (denormalizasyon) gerekebilir.
-
Örneğin yüksek hız için veri fazlalığı göze alınarak zaman zaman denormalizasyon yapılabilir.
-
Aynı bilgi defalarca kaydedilir.
-
Kaynak kullanım israfına yol açar.
-
Veri tutarsızlıklarına (düzensizliklerine) neden olabilir.
Veri tekrarı tablo içerisine başka tablonun gömüldüğü anlamına gelir…
Yeni kayıt eklenirken filmAdi ve izlenmeSayisi sütunlarında tutarsızlık oluşmuştur.
Birincil anahtar tekrar edeceği için yeni bir kayıt eklenemeyebilir. OyuncuNo alanına değer yazılamazsa 4 nolu film de eklenememiş olur.
Veri güncellenirken birçok noktada değişiklik yapmak gerekir ve aynı zamanda tutarsızlıklar oluşabilir.
Veriler silinirken başka veriler de kaybedilebilir.
Örneğin 2 numaralı filmin oyuncuları silindiğinde ilgili filmin bilgileri de kaybedilir.
Tabloları birinci normal forma (1NF) dönüştürmek için:
-
Tüm alanlar birincil anahtar tarafından belirlenebilmelidir.
-
Tüm alanlar tek değerli olmalıdır.
ePosta alanı tek değerli değil.
Ne yapmalı?
Yukarıdaki tablo 1. Normal Formdadır.
Tabloda birincil anahtar var.
Her alanda tek değer var.
Buna rağmen veri tekrarı vardır.
Neden?
- Kayıtların ayırt edilebilmesi, tabolar araasında ilişki kurulabilmesini sağlar.
- Anahtarlar belirlenirken fonksiyonel bağımlılık göz önüne alınmalıdır.
Aşağıdaki tabloda, ogrenciNo niteliği kullanılarak adi alanı belirlenebilir. (tersi doğru değildir)
Bu durumda:
ogrenciNo alanıi adi alanını belirler.
adi alanı, ogrenciNo alanına fonksiyonel bağımlıdır ( ogrenciNo --> ogrenciAdi).
Nitelikler birden fazla alanın birleşimine fonksiyonel bağımlı olabilir.
ogrenciNo, dersNo -> ortalama Tam fonksiyonel bağımlılık
siparisNo, urunNo -> miktar Tam fonksiyonel bağımlılık
ogrenciNo, dersNo -> dersAdi Kısmi fonksiyonel bağımlılık
Birincil anahtar, birden fazla alanın birleşiminden oluşuyorsa, tablonun 2NF’de olabilmesi için diğer alanların birincil anahtara tam fonksiyonel bağımlı olması gerekir.
Birincil anahtar tek alandan oluşuyorsa ve tablo 1NF’de ise, 2NF de sağlanmış olur.
-
Birincil anahtar ogrenciNo ve dersNo alanlarından oluşan bileşik birincil anahtardır.
-
not alanı birincil anahtara tam fonksiyonel bağımlıdır.
-
dersAdi ve kredi alanları birincil anahtara kısmi fonksiyonel bağımlıdır ve bu nedenle tablo ikinci normal formda (2NF) değildir. Veri tekrarı meydana gelmiştir.
Eğer A ➔ B ve B ➔ C ise A ➔ B ➔ C
- A, B üzerinden C’yi belirler.
- C, A ya geçişken bağımlıdır.
Örneğimizde;
- oduncNo ➔ ISBNNo ➔ kitapAdi
- oduncNo ➔ ISBNNo ➔ yayinYili
- oduncNo alanı, ISBNNo alanı üzerinden kitapAdi alanını belirler.
- kitapAdi alanı, oduncNo alanına geçişken bağımlıdır.
Tablo 2NF’de ise ve geçişken bağımlılık yok ise 3NF’dedir.
1NF: Birincil anahtar mevcuttur ve çok değerli alanlar yoktur.
2NF: Birinci normal formdadır ve kısmi bağımlılık yoktur.
3NF: İkinci normal formdadır ve ve geçişken bağımlılık yoktur.


















