Ana içeriğe geç
Kesit SQL
Orta · Veritabanı Tasarımı

Normalizasyon: 1NF, 2NF, 3NF, BCNF

Tekrarı ve anomalileri önleyen tablo tasarımı.

Uygulamada aç, 6 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Kötü tasarımın üç anomalisi

Tek bir dev tabloda (siparis_no, musteri_adi, musteri_sehir, urun_adi, urun_fiyat, adet) tuttuğunu düşün:

Normal formlar

FormKuralÖrnek ihlal
1NFHer hücre tek (atomik) değer; tekrar eden sütun grupları yok.telefonlar = '0532..., 0542...'
2NF1NF + anahtar olmayan her sütun birincil anahtarın tamamına bağlı (bileşik anahtarda kısmi bağımlılık yok).order_items(order_id, product_id, product_name): ad sadece product_id'ye bağlı
3NF2NF + geçişli bağımlılık yok: anahtar olmayan sütun başka bir anahtar olmayan sütuna bağlı olmamalı.employees(emp_id, dept_id, dept_name): dept_name, dept_id'ye bağlı
BCNFHer belirleyici bir aday anahtardır (3NF'nin sıkı hali).Nadir, örtüşen aday anahtarlarda ortaya çıkar

Kısa ezber: “Anahtar, bütün anahtar ve anahtardan başka hiçbir şey.”

Denormalizasyon

Analitik sistemlerde (veri ambarı) sorguları hızlandırmak için bilinçli olarak tekrar eklenir: yıldız şema, geniş tablolar. Kural: İşlem sistemleri (OLTP) normalize, analitik sistemler (OLAP) çoğu zaman denormalize.

Alıştırmalara geç (6)