Veri Tabanı Normalleştirme (Normalizasyon)

Veri Tabanı Normalleştirme (Normalizasyon) Nedir? Veri Tabanı Normalleştirme (Normalizasyon) Nasıl Yapılır? Veri Tabanı Normalleştirme (Normalizasyon) hakkındaki her şeye bu konumuzda ulaşabilirsiniz.

Veri Tabanı Normalleştirme (Normalizasyon)

Veri Tabanı Normalleştirme (Normalizasyon)

Normalleştirme, bir veri tabanındaki verileri düzene koyma işlemidir.

Veri tabanını tasarlarken aynı verinin değişik yerlerde tekrarlanması ihtimali vardır. Bu durumda veri ekleme, silme ve güncelleme işlemlerinde aşağıdaki problemler oluşabilir:

  • Veri tekrarı (istikrarsızlık, tutarsızlık oluşturabilir.)
  • Veri kaybı
  • Veri yetersizliği
  • İşlevliğini yitirmiş veriler

Normalleştirme bu tür problemleri önlemeye yarar.

Veri Tekrarı Örneği

Aşağıdaki Dersler tablosunda öğrencilerin aldığı dersler gösterilmektedir.

Veri Tekrarı Problemi

Veri tekrarlarının sebep olduğu problemler:

Güncelleme

  • Bir öğrencinin adı değiştirilmesi gerektiğinde, öğrenci adı geçen tüm satırları değiştirmek gerekir.

Silme

  • Bir öğrencinin ders kayıtları silindiğinde öğrenci bilgileri de (ÖğrenciNo ve İsim) silinmiş olacak veya ÖğrenciNo ve İsim kayıtlarda kalırsa DersNo, Ders Adı NULL olması gerekecektir.

Ekleme

  • Yeni bir öğrenci eklendiğinde, ders kaydı olmadığı için DersNo ve DersAdı bilgileri NULL olmak zorunda olacaktır.
  • Bu tür sorunları engellemek için tabloayrıştırılması (decomposition) yapılır.

Veri Tekrarın Önlenmesi

Tablo Ayrıştırılması (Decomposition)

Fonksiyonel Bağımlılık

Bir ilişkide farklı satırlarda X değerleri aynı olduğunda Y değerlerinin de aynı olmasıdır.

  • X → Y şeklinde olur. (Y, X’e fonksiyonel bağımlı)
  • X, Y : öznitelik (attribute) kümeleri
  • Örnek X = ÖğrenciNo,
    Y = İsim

Fonksiyonel Bağımlılık Örnekleri

Kayıt (ÖğrenciNo, İsim, DersNo, DersAdı, Dönem, Not)

  • ÖğrenciNo → İsim

burada isim alanı ÖğrenciNo alanına fonksiyonel bağımlıdır.

  • DersNo → DersAdı aynı şekilde

DersAdı DersNo alanına fonksiyonel bağımlıdır.

Normal Formlar

1. Normal Form(1NF):  

  Veri Tabanlarında daha az yer kaplaması için geliştirilen ilk normalizasyon kuralıdır.

  Kurallar:

  1. Veri tabanlarında bulunan tablolar ilişkilendirilebilir bir şekilde tasarlanmalıdır.
  2. Her bir alan (nitelik) tek bir değer içermelidir. Birden fazla değer tek bir alanda tutulamaz.
  3. Birbiriyle alakalı veri gruplarını başka bir tabloya taşımak ve her bir satırı (kaydı) tek olarak (birincil anahtar) tanımlamak gerekir.

2. Normal Form(2NF):  

Birbiri ile alakalı alanları başka bir tabloya aktarmak ve bu alanlardan herhangi bir anahtara sahip olmayanları birincil anahtara bağımlı kılmaktır.

3. Normal Form (3NF):

 Birincil anahtara tam olarak bağlı olmayan tekrar eden alanlar çıkarılarak bir tablo oluşturulabilir.

Boyce-Code Normal Form(BCNF)

Eğer bir tablo 3NF kuralına uygunsa ve her bir belirleyici aday anahtar ise tablo BCNF kuralına uygundur.

Veri Tabanı Normalizasyonu

Birinci Normal Form

Örnekteki tablo Birinci Normal Form’dadır. Tekrarlar vardır.

İkinci Normal Form

1NF’deki aşağıda gösterilen Kayıtlar tablosu 2NF’ye dönüştürülebilir.

Bu tabloda aşağıdaki fonksiyonel bağımlılıklar mevcuttur:

  • Öğrenci No → İsim
  • Bölüm Kodu → Bölüm
  • Ders No → Ders Adı
  • Öğrenci No, Ders No → Not

2NF’de kendisi anahtar olmayan tüm sütunlar anahtara bağlanarak yeni tablolar yaratılır.

Örnekteki tabloda anahtar Öğrenci No, Ders No’dur.

İkinci Normal Formun Sorunları

Elimizdeki Kayıtlar tablosu 2NF, fakat 3NF henüz uygun değil. Geçişken bir ilişki var: Öğrenci No → Bölüm Kodu ve Bölüm Kodu → Bölüm

Satır ekleme sorunu: Bir bölüm eklemek için bir öğrenci yaratmak gerekecek.

Satır silme sorunu: Bir öğrenci silindiğinde, bölüm bilgisinin de yok olma durumu olabilir.

Üçüncü Normal Form

Geçişken ilişkiler kaldırıldığında 3NF oluşmuş olur.

Boyce-Codd Normal Formu

Kendisi anahtar olmayan özellikler, anahtara fonksiyonel olarak bağlı bulunmamalıdır.

Burada Öğrenci No, Ders Kodu anahtar olarak görünmektedir. Fakat Danışman → Öğrenci No şeklinde bir ilişki de vardır.

Danışmanın ise birden fazla öğrencisi olabilir.

Bu durumda 3NF sağlanıyor, fakat sorunlar var, yeni bir danışman eklemek için öğrenci şart. Ayrıca bir öğrenci silindiğinde danışman da ortadan kalkabilir. Çözüm = tablo ayrıştırma

Normalizasyon Örneği

Gereksiz Ayrıştırma

Kötü Ayrıştırma

Normal Form Özellikleri

Genellikle 3NF sağlandığında tablomuz son haline ulaşmış durumdadır.

Nadiren de olsa 3NF sağlanmış haldeyken BCNF’de sorun olur.

Tüm tablolara normalizasyon işlemlerinin uygulanmasının ardından veritabanı kullanıma hazırdır.

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow