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
Yorum Gönder