Ana sayfa » Veri Tabanı Normalizasyon Kuralları Nelerdir?
Veri Tabanı Normalizasyon Kuralları Nelerdir - TechnoVadi EDU

Veri Tabanı Normalizasyon Kuralları Nelerdir?

Veri Tabanı Normalizasyon Nedir?

Veri Tabanı Normalizasyon, veritabanının tasarım aşamasında veri tekrarını, veri kaybını veya veri yetersizliğini önlemek için gerçekleştirilen işlemler bütünüdür.

Her kurala “normal form” adı verilir. İlk kural kullanılıyorsa veritabanının “ilk normal formda” olduğu söylenir.

İlk üç kural kullanılıyorsa veritabanının “üçüncü normal form” olduğu söylenir.

Genel olarak, normalleştirme için ek tablolara ihtiyaç duyulur. Bunun ek yük getirdiği düşünülebilir fakat aslında tam tersi yükü azaltır. Az sonra ne demek istediğimi daha iyi anlayacaksınız.

Basit bir şekilde bahsetmek gerekirse; Normalizasyon işlemi, çok fazla satır ve sütundan oluşan bir tabloyu veri tekrarından korumak için daha az satrı ve sütunda oluşan tablo veya tablolara bölme işlemidir.

Kurallar, depolanacak verilerin neler olacağını belirler ve kayıtlar arasında veri tekrarı, veri kaybı ve yetersizliğini engeller.

Normalizasyon tanım olarak ayrıştırma anlamına gelmektedir.

Normalizasyon Amaçları

Temel amacı; Tabloların oluşturulması, tablolar arasında artıklığı ve tutarsız bağımlılığı ortadan kaldırmaktır.

  • Veri Bütünlüğü Sağlamak: Gereksiz veri tekrarını önlemek
  • Uygulamadan Bağımsızlık: Hazırlanan Veri Modeli Uygulamaya göre değil kullanılacak veriye göre tasarlanmalı. Yani uygulama değişse veya silinse bile Veritabanı tutarlı bir şekilde çalışmaya devam etmeli.
  • Performansı Artırmak: Veri tekrarını en aza indirmek, eğer mümkünse yok etmek. Böylelikle veri tabanındaki gerekli işlemler çok daha hızlı yapılacaktır.

Normalizasyon Kuralları

Normalizasyon yapılırken uyulması gereken kurulların her birine normal form adı verilir. Normalde kullanılan 3 kural vardır bunlar;

– Birinci Normal Form (1NF)
–İkinci Normal Form (2NF)
–Üçüncü Normal Form (3NF)

Daha yüksek düzey formlarda mevcut fakat genelde kullanılmıyor çünkü 3NF yeterli geliyor. 3NF’e uygun olan tablolar aynı zamanda 1NF ve 2NF‘ede uygundur. 2NF tabloları ise 1NF‘e uygundur.

Normalizasyon Kurallarından bahsederken aynı zamanda her kural içinde 2 tablo örneği vereceğim. İlk vereceğim tablo kurala uygun olmayan tabloyken ikinci tablo bahsi geçen kurala uygun tablo olacak. Böylelikle Normalizasyon kurallarını daha iyi anlayacağınızı tahmin ediyorum.

1.Normal Form(1NF)

  • Bir alan içerisindeki bilgi özel karakterlere ayrılarak tutulmamalıdır.
  • Birden fazla bilgi tek bir sütunda olamaz.
  • Tekrarlanan sütun yapıları olmalıdır.

Aşağıdaki tablo gördüğünüz üzere 1NF kuralına uygun değildir çünkü “Birden fazla bilgi tek bir sütunda olamaz”

Telefon Tablosu
Ad SoyadTelefon
Aydın Bekoğlu555,431,679
Cemal Yıldırım904
Serkan Özkan648,076

Aşağıdaki tablo ise 1NF uygun şekilde oluşturulmuştur. Ad ve Soyad farklı sütunlara ayrılmış, Telefon sütunundaki telefon numaraları ise her hücreye bir veri gelecek şekilde düzenlenmiştir.

Telefon Tablosu
AdSoyadTelefon
AydınBekoğlu555
AydınBekoğlu431
AydınBekoğlu679
CemalYıldırım904
SerkanÖzkan648
SerkanÖzkan076

1.Normal Form Sorunları(1NF)

  • Veri Ekleme Sorunu: Eklenen verinin daha önce olup olmadığının kontrolü çok zordur. (Aynı kişiye ait birden fazla satır ve sütun mevcut)
  • Veri Güncelleme Sorunu: Kişiye ait bir veri güncellenmek istendiğinde hangisinin güncelleneceği sorunu (Birden fazla Telefon Numarası Mevcut)
  • Veri Silme: Hangi verinin silineceği konusunda belirsizlik (Aynı kişiye ait birden fazla satır ve sütun mevcut )

2.Normal Form(2NF)

Bu Normalizasyon Kuralı, 1NF’deki güncelleme sorununu ortadan kaldırmak için ortaya atılmıştır. Bu sorun yeni tablo(lar) oluşturularak ortadan kaldırılmıştır.

  • Tabloda birincil anahtar (Primary Key) olmalı ve anahtar olmayan sütunlar birincil anahtara bağlı olmalıdır. Birincil anahtar “PK” olarak gösterilir.
  • Birincil anahtar birden fazla sütundan oluşuyorsa tablodaki veriler her iki sütuna da bağımlı olmalıdır

Aşağıda 1NF kuralına uygun bir tablo görüyorsunuz fakat 2NF’e uygun olması için Öğrenci ve Not bilgileri 2 farklı tabloya ayrılmalı!

Ogrenci ve Not Tablosu
ogrNo(PK)AdBolumDersKodu(PK)Not
123AydınBilişimb67832
123AydınBilişimb90298
658CemalBilgisayarb59469
375SerkanBilişimb90273

Aşağıdaki tablolar 2NF kuralına uygun olarak yeniden tasarlanmıştır.

1.Tablo

Ogrenci Tablosu
ogrNo(PK)AdBolum
123AydınBilişim
658CemalBilgisayar
375SerkanBilişim

2.Tablo

Not Tablosu
ogrNo(PK)DersKodu(PK)Not
123b67832
123b90298
658b59469
375b90273

2.Normal Form Sorunları(2NF)

  • 1NF’teki Veri Ekleme ve Silme Sorunu devam etmektedir.

3.Normal Form(3NF)

  • Anahtar olmayan sütunlar ya başka bir tablonun birincil anahtarını (PK) referans gösterecek (FK “ikincil anahtar”) ya da aynı tabloda ki diğer alanlar ile doğrudan ilişkili olacak.
musNo(PK)urunID(FK)sehirADsehirKodmiktar
m111u1İstanbul34100
m111u2İstanbul34200
m222u2Kastamonu37120
m333u3Aydın9340
m444u1Kastamonu3766

Yukarıdaki tablo sadece 1NF uygun. 2NF ve 3NF uygun değil. Şimdi gelin 2NF uygun hale getirelim.

1.Tablo

musNo(FK)urunID(PK)miktar
m111u1100
m111u2200
m222u2120
m333u3340
m444u166

2.Tablo

musNo(PK)sehirADsehirKod
m111İstanbul34
m222Kastamonu37
m333Aydın9
m444Kastamonu37

Müşteri birincil anahtarını kullanarak ikinci tabloyu elde ettik. İkinci tabloya dikkatlice bakarsanız anahtar olmayan “sehirAD” ve “sehirKod” sütunları “musNo” ile doğrudan ilişkili değil fakat birbirleriyle doğrudan ilişkilidir. Gelin 2.Tabloyu tekrar bölelim ve böylelikle 3NF uygun hale gelsin.

1.Tablo’da hiç bir değişiklik yapmıyoruz.

musNo(PK)sehirKod(FK)
m11134
m22237
m3339
m44437

2.Tablodan “sehirAD” sütunu çıkardık ve yeni bir tablo oluşturduk. Yukarıda “sehirAD” ve “sehirID” birbirleriyle bağımlı demiştik. Yeni oluşturacağımız tabloyu buna göre oluşturduk.

sehirKod(PK)sehirAD
34İstanbul
37Kastamonu
9Aydın

Ayrıca “VTYS Sistemlerinin Sağladığı Yararlar” adlı makalemizin de sizlere faydalı olacağını düşünüyorum.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir