MySQL Normalizasyon ( 1NF, 2NF, 3NF )

MySQL Normalizasyon

    Veri tabanı oluştururken bazı kurallarımız vardır. Bu kurallar hem kullanış açısından, hem de performans açısından çok önemlidir.


Normalizasyon

    Normalizasyon veri tabanımızda verilerin tekrarlanmasını engeller. Örnek olarak araç satış veri tabanımız var. Tek bir tabloda işlem yapmak istediğimizde arabanın marka, model gibi özelliklerini ve aracı satan personelin Tc’si, adı soyadı gibi bilgileri her satır için tekrar yazmamız gerekir. Eğer arabalar, personeller ve satislar isimli birer tablomuz olursa, satış tablosunda sadece araba ve personelin id değerini almamız yeterli olacaktır. Gördüğünüz gibi satış işlemi çok daha kolay hale geldi.Sadece idler tekrarlanmış oldu. Bu sayede kaç adet aynı idden olduğunu saydırarak, o arabadan kaç tane ya da o personel kaç tane satış yapmış gibi sorguları çok daha basit bir şekilde sorgulamış oluruz. Aynı zamanda veri tutarlılığı da artmış olacak, daha az veri olduğu için boyutumuz küçülecek ve performans artacaktır.

    Normalizasyon kurallarımızın her birine “Normal Form” ismini veriyoruz. Normalizasyon işlemini MySql’de tablomuza tıklayıp “yapı” menüsüne geldiğimizde “Normalleştir” butonuna tıklayarak da yapabiliriz. Oradan normalizasyon seviyesini seçerek (1NF, 2NF, 3NF) istediğimiz seviyeye getirebiliriz. Tabiki de en güzeli ve kolayı bizim öğreneceğimiz şekildedir.

 

    aracparcasatis isimli bir veri tabanı oluşturup içerisine satislar isminde tablo oluşturdum. Bu tablonun normalizasyonunu birlikte yapalım.




Birinci Normal Form ( 1NF )

  • Alanlar Tekrar Etmemeli.
  • Her Alanda Tek Değer Bulunabilir.
  • Her Satırın Birincil Anahtarı Olmak Zorundadır.

    Alanların tekrar etmesi de alan içerisindeki verilerin işaretçiyle ayrılması da bu adıma uygun değildir. Öncelikle arac_parcalari alanımızdaki verilerin her birini ayrı bir kayıt haline getirelim. Ve her alan için “Id” isminde benzersiz alan “Primary Key” tanımlaması yapalım.


İkinci Normal Form ( 2NF )

  • Öncelikle tablomuz 1NF kurallarına uygun olmalıdır.

  • Tekrarlanan değerler yeni bir tabloya aktarılmalıdır.

  • Yeni tablo ve ana tablo anahtarlar ile bağlanıp ilişki oluşturulmalıdır.

    Personeler tablosu oluşturup id alanını birincil anahtar olarak ayarladım. Satislar tablosunda ise sadece p_id alanını oluşturdum. P_id alanını yabancı anahtar olarak ayarladım.Üzerine geldiğimde personelin isminin geldiğini görüyorsunuz.



Üçüncü Normal Form( 3NF )

  • Öncelikle tablomuz 2NF kurallarına uygun olmalıdır.

  • Anahtar olmayan bir kolon başka bir anahtar olmayan kolona bağlanmamalıdır. Böyle bir durum varsa ortadan kaldırmalıyız.

    Arac_model kolonumuz arac_markaya bağlı bir kolon. Ama bizim yapmamız gereken hepsini direk id değerine bağlamaktır. Bunun için arabalar isimli bir tablo oluşturup arac_marka ve arac_model alanlarını bu tabloya aktarmalıyız.




Sonuç

Temel olarak normalizasyon kurallarımızı başarıyla uyguladık.

Aslında burada dikkat edersek arac_parcalari alanımızın arabalara bağlı olduğunu görebiliriz.

Araç modellerinin araba markalarına bağlı olduğunu görebiliriz.

Şimdi bu veritabanımızı daha da iyi hale getirelim. Bağlantılarıyla beraber verdiğim tabloların üzerinde biraz düşünerek daha güzel anlayabileceğinizi sanıyorum.




Yorumlar

Bu blogdaki popüler yayınlar

Android Studio İmage View resim değiştirme

Android Studio Mesaj Gönderme Uygulaması