-
Bir sütun başka bir sütuna bağlıysa, o da başka bir sütuna bağlıysa geçişli fonksiyonel bağımlılık (transitive dependency) olur.
- 3NF bunu yasaklar, çünkü:
- Aynı bilgi birden fazla yerde tutulur (veri tekrarı).
- Güncelleme/silme sırasında hatalar çıkar (update/delete anomaly).
- Yani anahtar olmayan sütunlar yanlış tabloda duruyor demektir.
- 3NF bunu yasaklar, çünkü:
-
Mantık:
- A B ve B C varsa,
A C dolaylı (geçişli) bağımlılıktır.
- A B ve B C varsa,
-
Kötü Tasarım (3NF ihlali)::
Student(id PK, department_id, department_name)-
id → department_id(öğrenci hangi bölümde) -
department_id → department_name(bölümün adı) -
Dolayısıyla
id → department_name(geçişli bağımlılık oluştu) -
Doğru Tasarım (3NF’ye uygun)::
Student(id PK, department_id FK)
Department(department_id PK, department_name)- Bu yapıda:
- Her bilgi ait olduğu tabloda tutulur.
department_nameartık STUDENT tablosunda değil, kendi Department tablosunda.- Böylece veri tekrarsız, tutarlı ve güncellenebilir olur.