logo

Normalleştirme

Tek bir ilişki olarak tanımlanan büyük bir veritabanı, verilerin çoğaltılmasına neden olabilir. Verilerin bu şekilde tekrarlanması aşağıdaki sonuçlara yol açabilir:

  • İlişkileri çok büyük hale getirmek.
  • Verilerin bakımı ve güncellenmesi ilgili birçok kaydın aranmasını gerektireceğinden kolay değildir.
  • Disk alanı ve kaynaklarının israfı ve yetersiz kullanımı.
  • Hata ve tutarsızlık olasılığı artar.

Bu sorunları çözmek için, gereksiz verilerle olan ilişkileri analiz etmeli ve arzu edilen özellikleri karşılayan daha küçük, daha basit ve iyi yapılandırılmış ilişkilere ayrıştırmalıyız. Normalleştirme, ilişkileri daha az özniteliklere sahip ilişkilere ayırma sürecidir.

Normalleşme Nedir?

  • Normalleştirme, veritabanındaki verilerin düzenlenmesi işlemidir.
  • Normalleştirme, bir ilişkiden veya ilişkiler kümesinden gelen fazlalığı en aza indirmek için kullanılır. Ayrıca Ekleme, Güncelleme ve Silme Anomalileri gibi istenmeyen özelliklerin ortadan kaldırılması için de kullanılır.
  • Normalleştirme, büyük tabloyu daha küçük tablolara böler ve ilişkileri kullanarak bunları birbirine bağlar.
  • Normal form, veritabanı tablosundaki fazlalığı azaltmak için kullanılır.

Neden Normalleşmeye ihtiyacımız var?

İlişkilerin normalleştirilmesinin temel nedeni bu anormalliklerin ortadan kaldırılmasıdır. Anormalliklerin ortadan kaldırılamaması veri fazlalığına yol açar ve veritabanı büyüdükçe veri bütünlüğüne ve diğer sorunlara neden olabilir. Normalleştirme, iyi bir veritabanı yapısı oluşturmanıza yardımcı olacak bir dizi yönergeden oluşur.

Veri değişikliği anormallikleri üç türe ayrılabilir:

    Ekleme Anomalisi:Ekleme Anomalisi, veri eksikliği nedeniyle bir ilişkiye yeni bir demet eklenememesi anlamına gelir.Silme Anomalisi:Silme anomalisi, bir verinin silinmesinin diğer bazı önemli verilerin istenmeyen şekilde kaybolmasıyla sonuçlandığı durumu ifade eder.Güncelleme Anomalisi:Güncelleme anormalliği, tek bir veri değerinin güncellenmesinin birden fazla veri satırının güncellenmesini gerektirmesidir.

Normal Form Türleri:

Normalleştirme, Normal formlar adı verilen bir dizi aşamadan geçer. Normal formlar bireysel ilişkilere uygulanır. Kısıtlamaları karşılıyorsa ilişkinin özellikle normal formda olduğu söylenir.

Aşağıda Normal formların çeşitli türleri verilmiştir:

DBMS Normalleştirme
Normal Form Tanım
1NF Bir ilişki atomik bir değer içeriyorsa 1NF'dedir.
2NF Bir ilişki 1NF'deyse ve anahtar olmayan tüm nitelikler birincil anahtara bağlı olarak tamamen işlevselse 2NF'de olacaktır.
3NF Bir ilişki 2NF'deyse ve geçiş bağımlılığı yoksa 3NF'de olacaktır.
BCNF 3NF'nin daha güçlü bir tanımı Boyce Codd'un normal formu olarak bilinir.
4NF Bir ilişki Boyce Codd'un normal formundaysa ve çok değerli bir bağımlılığı yoksa 4NF'de olacaktır.
5NF 5NF'de bir ilişki var. Eğer 4NF’deyse ve herhangi bir join bağımlılığı içermiyorsa, katılım kayıpsız olmalıdır.

Normalleştirmenin Avantajları

  • Normalleştirme, veri fazlalığının en aza indirilmesine yardımcı olur.
  • Daha büyük genel veritabanı organizasyonu.
  • Veritabanındaki veri tutarlılığı.
  • Çok daha esnek veritabanı tasarımı.
  • İlişkisel bütünlük kavramını uygular.

Normalleştirmenin Dezavantajları

  • Kullanıcının neye ihtiyacı olduğunu bilmeden veritabanını oluşturmaya başlayamazsınız.
  • İlişkileri daha yüksek normal formlara, yani 4NF, 5NF'ye normalleştirirken performans düşer.
  • İlişkileri daha yüksek düzeyde normalleştirmek çok zaman alıcı ve zordur.
  • Dikkatsiz ayrıştırma, kötü bir veritabanı tasarımına yol açarak ciddi sorunlara yol açabilir.