Normalizasyon Nedir? (1. Kısım – 1.NF,2.NF,3.NF)

Normalizasyon, veritabanının daha sağlıklı yapılandırılıp daha doğru çalışması için oluşturulan ve kabul edilen bazı kurallardır. 

Normalizasyon adımları 1NF,2NF,3NF,BCNF / 3.5NF (Boyce-Codd Normal Form), 5NF,6NF olmak üzere 6 adımdan oluşsa da ilk 3 Normal Form uygulandıysa normalizasyon yapılmış kabul edilir. 

1NF (Birinci Normal Form)

Birinci Normal Formun (1NF) amacı, tablodan tekrarlanan grupları parçalamaktır. Aşağıdaki tabloda Telefon alanında birden fazla telefon numarası girişi görülmektedir. Ancak 2. satırdaki kişinin iki telefon numarası bulunması, 3. satırda ki kişinin hiç telefon numarası bulunmaiından dolayı 3 boş alan yer kaplamıştır.  Bu da boş yere alan kullanımına sebep olacaktır. Bu yapı olmaması gereken bir yapıdır ve 1NF' ye uygun değildir.

Veritabanı Örneği
Veritabanı Örneği

Aşağıda Birinci Normal Formu (1NF) sağlamış olduğumuz tablo görülmektedir. Bu tabloda tekrarlayan kolonları satırlara böldük. Böylece kişiye ait ikinci bir telefon numarası eklemek istediğimizde yeni bir satır oluşturuyoruz ve telefon numarasını ekliyoruz. Tabi bu şekilde de girmiş olduğumuz her telefon numarası için kişiye ait diğer bilgileri tekrarlamış oluyoruz.

Birinci Normal Form (1.NF)
Birinci Normal Form (1.NF)

Tablomuza 1NF uygulanmış tablo görülüyor. Ancak buna rağmen eksikliklerimiz görülmektedir;

SORUNLAR;

  1. Satır Ekleme: Bir kişiye ait ikinci bir telefon numarası eklemek için bütün bilgileri tekrarlamak gerekecek.
  2. Satır Silme: Satır silme noktasında iki sorun çıkıyor karşımıza;

     

    1. Mehmet YILMAZ adlı kişiyi silmek için bu kişiye ait bütün satırları silmek gerekecek (3 satır silmek gerekecek.).
    2. Mustafa KAYA kişisinin şehrini (Ankara) silmek istediğimizi varsayalım. Bu durumda 7. satırı silmemiz gerekecek ve buda Mustafa KAYA kişisine ait bütün bilgileri kaybetmemiz demek.
  3. Satır Güncelleme: Mehmet YILMAZ adlı kişinin Şehir bilgisini Adıyaman olarak değiştirmek istediğimizi varsayalım. Bu durumda 3 satırda da güncelleme yapmamız gerekecektir.

2NF (İkinci Normal Form)

Birinci Normal Form kurallarını uyguladık ama yinede yukarıda sıraladığımız sorunlar görülüyor. Bu sorunlarıda gidermek için diğer kuralları uygulamamız lazım.  Hemen yukarıdaki tablomuzun İkinci Normal Form kuralları uygulanmış halini görelim.

İkinci Normal Form (2.NF)
İkinci Normal Form (2.NF)

Yukarıda görüldüğü üzere tablomuzu iki tabloya böldük. İlk tabloda ad,soyad ve sehir alanlarını tuttuk,diğer tabloda sadece tel alanını tuttuk. Bu iki tablo Primary Key(Birincil Anahtar) ve Foreign Key(Yabancı Anahtar)'ler ile ilişkilendirildi(Relation). Yani Mehmet YILMAZ'a ait  "uid"sine (1)  ikinci tabloda baktığımızda uid'si (1) olan 3 adet telefon no göreceğiz. Bu üç telefon numarasıda Mehmet YILMAZ'a ait numaralar olacaktır. 

SORUNLAR;

  1. Satır Ekleme: Aynı şehirde oturan kullanıcıları eklerken gereksiz şehir tekrarı yapmış olacağız.
  2. Satır Silme: Mehmet YILMAZ kişisini silmek istediğimizde şehir bilgisinide kaybetmiş olacağız.
  3. Satır Güncelleme: Mehmet YILMAZ adlı kişinin Şehir bilgisini Adıyaman olarak değiştirmek istediğimizi varsayalım. Bu durumda 3 satırda da güncelleme yapmamız gerekecektir.

3NF (Üçüncü Normal Form)

İkinci Normal Formu'da uyguladık ancak bu haliyle örneğin Konya şehrinde oturan yeni kullanıcılar eklerken sürekli şehir alanını tekrarlayacağız. Bunu aşmak içinde aşağıdaki gibi bir yapı oluşturacağız.

Üçüncü Normal Form (3.NF)
Üçüncü Normal Form (3.NF)

Yukarıdaki yapıda 3 tablo görülmektedir. Mehmet YILMAZ kullanıcısının şehir bilgisinin "sid" ilişkisi ile Konya olduğunu görüyoruz. Bu kişiye ait telefon numaralarını da "uid" ilişkisi ile görüyoruz.

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.