Sobes.tech
Middle

Veritabanlarındaki normal formlar hakkında ne biliyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Normal formlar (NF), ilişkisel veritabanı yapısının tasarımı için kurallar ve öneriler bütünüdür ve veri fazlalığını en aza indirmeye ve ekleme, güncelleme ve silme sırasında oluşabilecek anomalileri önlemeye yöneliktir.

Ana normal formlar:

  • Birinci Normal Form (1NF):

    • Her özellik (sütun) atomik (bölünemez) değerler içermelidir.
    • Tekrarlayan özellik gruplarından kaçınılmalıdır.
    • Her satır benzersiz olmalıdır (birincil anahtar olmalı).
  • İkinci Normal Form (2NF):

    • 1NF'dedir.
    • Her anahtar olmayan özellik, tüm birincil anahtara tam bağımlı olmalıdır (birleşik anahtar varsa).
  • Üçüncü Normal Form (3NF):

    • 2NF'dedir.
    • Birincil anahtardan transitif bağımlılıkların olmaması gerekir (bir anahtar olmayan özellik başka bir anahtar olmayan özelliğe bağlı olmamalıdır).
  • Boyce-Codd Normal Form (BCNF):

    • 3NF'nin daha katı bir versiyonudur.
    • Her non-trivial bağımlılık $X \to Y$, $X$'in süper anahtar olmasıyla olmalıdır.
  • Dördüncü Normal Form (4NF):

    • BCNF'dedir.
    • Çok değerli bağımlılıkların olmaması gerekir.
  • Beşinci Normal Form (5NF):

    • 4NF'dedir.
    • Birleştirme bağımlılıklarının olmaması gerekir.

Normalizasyonun amaçları:

  • Veri fazlalığını azaltmak.
  • Anomalileri önlemek (ekleme, güncelleme, silme).
  • Veri bütünlüğünü sağlamak.
  • Veritabanı yapısını basitleştirmek.

Örnek:

Fazlalık içeren tablo (1NF'de değil):

SiparişID Ürün Fiyat
1 Dizüstü Bilgisayar, Fare 1000, 20
2 Klavye 50

Normalleştirilmiş tablo (1NF ve üzeri):

"Siparişler" tablosu:

SiparişID
1
2

"Sipariş Satırları" tablosu:

SatırID SiparişID Ürün Fiyat
1 1 Dizüstü Bilgisayar 1000
2 1 Fare 20
3 2 Klavye 50

Normalizasyon, tasarımda önemli bir adımdır, ancak aşırı normalizasyon, sorgularda birleştirme sayısını artırabilir ve bu da performansı olumsuz etkileyebilir. En uygun normalizasyon seviyesi, belirli gereksinimlere ve uzlaşmalara bağlıdır. Bazen performansı artırmak için normalizasyon kurallarını bilinçli olarak ihlal ederek denormalizasyon yapılır.