Veri Tabanı Normalizasyon Örneği
Aşağıdaki örnekte bir tablo verilmiştir. Bu tabloda bazı veriler bulunmaktadır. Bu tablonun Normalizasyon kurallarına uygun olup olmadığını inceleyeceğiz. Tabloda bulunan veriler tekil yani atomik olduğu için tablo 1NF kurallarına göre uygun görünmektedir.
Tekrarlanan sütun yapıları olmamalıdır. Birden fazla bilgi tek bir sütunda olamaz. Bir alan içerisindeki bilgi özel karakterlerle ayrılarak tutulmamalıdır.
musteriNo | urun_id | sehir | sehirKodu | miktar |
M145 | U1 | Ankara | 1 | 100 |
M145 | U2 | Ankara | 1 | 150 |
M151 | U2 | İstanbul | 2 | 75 |
M149 | U3 | Bursa | 3 | 200 |
M148 | U1 | İstanbul | 2 | 140 |
Yukarıdaki tabloyu aşağıdaki gibi iki farklı tablo şeklinde bölersek tablo artık 2NF kurallarına uygun hale gelmiş olur. Tabloda bir birincil anahtar olmalı ve anahtar olmayan sütunlar birincil anahtara bağımlı olmalı. Birincil anahtar birden fazla sütundan oluşuyorsa
tablodaki veriler her iki sütuna da bağımlı olmalıdır. Bu şekilde artık tablomuz 2NF ye tam olarak uygun hale gelmiştir.
musteriNo | urun_id | miktar |
M145 | U1 | 100 |
M145 | U2 | 150 |
M151 | U2 | 75 |
M149 | U3 | 200 |
M148 | U1 | 140 |
Ürünler ve müşteriler şeklinde tabloyu iki ayrı tablo haline getirdik.
musteriNo | sehir | sehirKodu |
M145 | Ankara | 1 |
M151 | İstanbul | 2 |
M149 | Bursa | 3 |
M148 | İstanbul | 2 |
Yukarıdaki görüldüğü gibi tabloyu iki farklı tabloya ayırarak ana tabloyu 2NF kurallarına uygun hale getirdik. Ancak henüz işimiz bitmedi. Bu tabloyu tekrar işleme sokarak 3NF kurallarına uygun hale getirmemiz gerekiyor. Bunun için tablomuzu aşağıdaki gibi üç farklı tabloya bölersek artık tablomuz 3NF kurallarına uygun hale gelmiş olacaktır. Böylece normalizasyon işlemleri tamamlanmış olacaktır.
Miktar tablosu
musteri | urun_id | miktar |
M145 | U1 | 100 |
M145 | U2 | 150 |
M151 | U2 | 75 |
M149 | U3 | 200 |
M148 | U1 | 140 |
Müşteri tablosu
musteri | sehirKodu |
M145 | 1 |
M151 | 2 |
M149 | 3 |
M148 | 2 |
Şehir tablosu
sehirKodu | sehir |
1 | Ankara |
2 | İstanbul |
3 | Bursa |
Ana tablomuzu yukarıdaki gibi üç ayrı tabloya bölerek normal hale getirmiş oluyoruz.
<< Önceki Yazı
Sonraki Yazı >>