Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
BCNF, 4NF, 5NF ve Ötesi: 3NF Ne Zaman Yetmez?
3NF yalnızca key olmayan attribute'lara bakar; bu yüzden tüm kolonları key'in parçası olan bir tablo 3NF'te olup yine de anomaly üretebilir. BCNF, 4NF ve 5NF bu boşlukları kapatır. SQL Server'da imza günü tablosuyla BCNF'i ve kaybolan dependency'yi indexed view ile geri getirmeyi, dil ve tür örneğiyle 4NF'i, dağıtımcı tablosuyla 5NF'teki join dependency'yi ve 6NF'in temporal veriyle ilişkisini gösteriyoruz.
1NF, 2NF ve 3NF: Sipariş Tablosunu Adım Adım Normalize Etmek
Normalizasyon tabloyu dependency'lere göre böler: 1NF listeleri satırlara açar, 2NF partial, 3NF transitive dependency'leri ayırır ve determinant yeni tablonun key'i olduğu için birleştirme kayıpsız olur. Sipariş Excel'ini SQL Server'da STRING_SPLIT ile 1NF'e, ardından 2NF ve 3NF'e taşıyor, her adımda EXCEPT ile kayıp ve sahte satır olmadığını kanıtlıyor, JSON kolonunun 1NF ile ilişkisini ve sonucu Bookstore şemasına eşlemeyi gösteriyoruz.
Functional Dependency ve Anomaliler: Düz Tablo Neden Bozulur?
Düz tablo bozulur, çünkü bir satırı birden çok bağımsız olguyu birlikte taşır; insert, update ve delete anomaly'leri bunun üç yüzüdür. Sipariş Excel'ini SQL Server'a yükleyip üç anomaly'yi canlı gösteriyor, functional dependency, determinant, full, partial ve transitive dependency'yi tanımlıyor, closure'ı bir T-SQL procedure'üyle hesaplayıp candidate key'i buluyor ve veriden dependency keşfetmenin neden yanılttığını gösteriyoruz.