Veri Tabanlarında Normalizasyon İşlemi- 2

Merhabalar;
Bir önceki yazımda veritabanlarında normalizasyon nedir, normalizasyonun amacı ve kuralları nelerdir bahsetmiştim. Bu yazımda ise genellikle normalizasyon yaparken kullandığımız 3 tür normal formdan bahsedeceğim. Keyifli okumalar.

Genellikle kullandığımız normal formlar şunlardır;

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

Birinci Normal Form (1NF)

Veri tabanımızın daha az yer kaplaması için geliştirilen ilk normal formdur. Birinci normal formu uygulayabilmek için bazı kurallar bulunmaktadır.Bunlar;

⦁ İlk olarak veri tabanımızda oluşturduğumuz tablolarımız birbiri ile ilişkilendirilebilir şekilde olmalıdır.

⦁ Her sütunda bir bilgi bulunmalıdır. Birden fazla bilgi tek bir sütunda bulunamaz.

⦁ Eğer bir alan içerisine yazacağımız bilgi iki kelimeden oluşuyorsa, kelimeler birbirinden özel karakterler ile ayrılmalıdır.

Yukarıdaki tablo normalizasyon işlemi yapılmadan önceki tablodur.Tablomuzda aynı ürün için birden fazla özellik gösterilmiştir. Renk sütununda birden fazla değer bulunmaktadır.

1NF normalizayson işlemi yapıldıktan sonra verilerimizin özelliklerine göre iki ayrı tablo oluşturmuş olduk. Bu şekilde her sütun için bir değerimiz bulunmaktadır. Normalizasyon sonrası hangi ürünün hangi renkte ve fiyatta olduğunu daha kısa sürede veri tekrarına gerek kalmadan öğrenme şansını elde etmiş olduk.

1.Normal Formu oluştururken bazı sorunlarla karşılaşabiliriz.Bunlar; Satır ekleme sorunu, Satır Silme Sorunu ve Satır Güncelleme Sorunudur.

Satır ekleme sorunu, tablomuzda birden fazla özellik bulunduğu için yeni bir veri kaydını eklerken her bir özelliği tek tek girmemiz gerekmektedir, ve eksik veri olduğu zamanlarda sorun oluşmaktadır.

Satır silme sorunu, bir satırı tamamen silmek istediğimizde tüm verileri silmediğimiz de karşılaştığımız sorundur.

Satır güncelleme sorunu ise bir alanı değiştirdiğimizde buna dahil olarak diğer kayıtları da güncellememiz gerekmektedir. Bu durum çok fazla veri içeren veri tabanları için performans kaybına neden olmaktadır.

İkinci Normal Form (2NF)

1NF’de karşılaştığımız performans kaybını yaratan güncelleme sorununu önlemek için geliştirilmiştir. 2NF ile tablolar birden fazla tabloya dönüştürülebilir. 2NF’ i uygulaya bilmek için bazı kurallar vardır. Bunlar;

⦁ Bir tabloda her satırda birincil anahtar bulunmalıdır ve her sütun bu anahtara bağlı olmalıdır. Birincil anahtar sütundaki ihtiyaca göre belirlenmelidir.

⦁ Birincil anahtar birden fazla sütundan oluşuyorsa tüm sütunlar anahtar sütunlara bağımlı olmalıdır. Herhangi bir sütun sadece birine bağımlı ise ayrı tablo bir tabloda gösterilmelidir. Böylelikle veri tekrarı önlenmek istenmiştir.

Yukarıdaki normalizasyon gerçekleşmemiş tablomuzda ayrı iki tane sütundan oluşan birincil anahtarımız bulunmaktadır.

2NF normal formu sonrası birbirine kısmi bağımlı olan sütunlar birbirinden ayrılarak iki tablo oluşturulmuştur. Bu şekilde veri güncellemesi kolaylıkla yapılabilecektir.

2NF normal formunda 1NF’de karşılaştığımız satır güncelleme sorunu çözülmüştür, fakat satır ekleme ve satır silme sorunlarını bu normal formda da yaşamaktayız.

Üçüncü Normal Form (3NF)

2NF’de karşılaştığımız sorunları çözmek amacıyla geliştirilmiştir. 2NF normal formu anahtar sütunlara odaklanmışken, 3NF normal formu ise anahtar olmayan sütunlara odaklanılmıştır.3NF’de amacımız tablolarımızı en verimli şekilde bölmektir, böylelikle ne satır ekleme sorunumuz ne de satır silme sorunumuz kalacaktır.

3NF’de önce bağımlı alanlar ayrılır. Daha sonra ise bu tablolardaki anahtarla doğrudan ilişkisi olmayan, fakat birbiriyle doğrudan ilişkisi olan alanlar ayrılır.

Normalizasyon öncesi tabloda tüm veriler art arda sıralanmıştır. Bu şekilde veri tabanına veri eklememiz bir karışıklığa neden olabilir.

3NF normal formu sonrası iki ayrı tablo oluşturduk. Her iki tabloda da tüm alanlar sadece bir birincil anahtara bağımlıdır. Birinci tabloda [Genre ID] (tür kimliği) ve [Price] (fiyat) sadece [Book ID] (kitap ıd) ye bağımlıdır. İkinci tabloda ise [Genre Type] (kitap türü) sadece [Genre ID] (tür ıd) ye bağımlıdır.

En baştan beri söylediğimiz gibi normalizasyon veri tekrarı ve veri tutarsızlığını önlemek adına en iyi çözümdür. Verilerimizi daha verimli ve daha anlaşılır kullanabilmek için veri tabanlarımızı normalizasyon formları ile tasarlamalıyız.

Bu yazımda en önemli 3 normalizasyon kuralından bahsettim. Sorularınız için bana hgencer@industryolog.com adresinden ulaşabilirsiniz.

Sağlıcakla Kalın…

Facebook Sayfamizdan Bizleri Takip Edebilirsiniz