Sobes.tech
Middle

Veritabanlarıyla çalışma bağlamında normalizasyon ve denormalizasyon nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Normalizasyon, veritabanındaki verilerin gereksiz tekrarları azaltmak ve veri bütünlüğünü artırmak için düzenlenmesi sürecidir. Denormalizasyon ise sorgu performansını artırmak amacıyla veritabanına gereksiz tekrarlar eklenmesi sürecidir.

Normalizasyon:

  • Prensipler: Tekrarlayan grupların ortadan kaldırılması, ilgisiz öznitelikler arasındaki bağımlılıkların giderilmesi.
  • Normalizasyon biçimleri (ana):
    • 1NF (Birinci Normal Form): Sütunlarda atomik değerler, tekrar eden grupların olmaması.
    • 2NF (İkinci Normal Form): 1NF + kısmi bağımlılıkların olmaması.
    • 3NF (Üçüncü Normal Form): 2NF + transitif bağımlılıkların olmaması.
    • Boyce-Codd Normal Form (BCNF): 3NF'nin daha katı bir versiyonu.
  • Avantajlar:
    • Veri tekrarını azaltır (alan tasarrufu).
    • Veri tutarlılığını artırır.
    • Veri değiştirmeyi (ekleme, güncelleme, silme) kolaylaştırır.
  • Dezavantajlar:
    • Tablo sayısında artış.
    • Tam bilgi almak için tabloların birleştirilmesi gerekebilir (JOIN'ler), bu da sorgu performansını düşürebilir.

Denormalizasyon:

  • Prensipler: Veri okuma hızını artırmak için normalizasyon kurallarının bilinçli ihlali.
  • Tipik teknikler:
    • Veri çoğaltma (örneğin, sipariş tablosunda ürün adını saklama).
    • Tabloların birleştirilmesi.
    • Önceden hesaplanmış toplam değerler.
  • Avantajlar:
    • Sorgu performansını artırır (özellikle SELECT).
    • JOIN sayısını azaltır.
    • Raporlar ve OLAP sistemleri için faydalı olabilir.
  • Dezavantajlar:
    • Veri tekrarını artırır (alan kaybı).
    • Veri tutarsızlığı riski.
    • Veri değiştirmeyi zorlaştırır (birden fazla yerde güncelleme gerekebilir).

Normalizasyon ve denormalizasyon arasındaki seçim, uygulamanın özelliklerine, önceliklere (veri bütünlüğü veya performans) ve sorguların doğasına bağlıdır. Genellikle, OLTP sistemleri için normalizasyon, OLAP sistemleri veya kritik performans alanları için denormalizasyon tercih edilir.