Způsob, jakým jsou v SQL definovány hodnoty null - jako nehodnoty, které nelze srovnávat s hodnotami domény - znamená, že porušují 1NF (a všechny vyšší normální formy). Vztah (matematická struktura reprezentovaná normalizovanými tabulkami) musí mít jednu hodnotu pro každý sloupec pro každý řádek. Hodnoty Null znamenají, že nemáme žádnou hodnotu, a sloupec s možnou hodnotou Null znamená, že máme v jedné tabulce dva vztahy – vztah nadtypu, který zahrnuje všechny sloupce kromě sloupce s možností hodnoty Null, a vztah podtypu, který má stejný primární klíč a sloupec, který mohl být dříve povolen. které můžeme zaznamenat pouze řádky, u kterých je atribut znám. Účelem normalizace je zahrnout soubor dat do elementárních faktů, aniž by došlo ke ztrátě informací, takže mít dva vztahy v jedné tabulce odporuje cíli a dělá věci jako relační algebru/kalkul složitější.
Normální formy jsou formálně logicky definované struktury, nikoli průmyslové best practices, které lze přizpůsobit situaci, takže nevidím moc prostoru pro polemiku. Zda je máme používat a jak s nimi zacházet, je zajímavější téma.
Zatímco hodnoty null porušují normální formy, neznamená to, že ve své databázi SQL nemůžete používat hodnoty null. Mají rizika i výhody. Používám je také, ale s rozvahou.