एसक्यूएल में जिस तरह से नल को परिभाषित किया गया है - गैर-मानों के रूप में जिनकी तुलना डोमेन मानों से नहीं की जा सकती है - इसका मतलब है कि वे 1 एनएफ (और सभी उच्च मानक रूपों) का उल्लंघन करते हैं। एक संबंध (सामान्यीकृत तालिकाओं द्वारा प्रदर्शित गणितीय संरचना) में प्रत्येक पंक्ति के लिए प्रत्येक स्तंभ के लिए एक मान होना चाहिए। नल का मतलब है कि हमारे पास कोई मूल्य नहीं है, और एक अशक्त स्तंभ का मतलब है कि हमारे पास एक तालिका में दो संबंध हैं - एक सुपरटेप संबंध जिसमें अशक्त एक को छोड़कर सभी कॉलम शामिल हैं, और एक उपप्रकार संबंध जिसमें एक ही प्राथमिक कुंजी और पहले से अशक्त स्तंभ है, के लिए जिसके लिए हम केवल उन पंक्तियों को रिकॉर्ड कर सकते हैं जिनके लिए विशेषता ज्ञात है। सामान्यीकरण का उद्देश्य डेटा को बिना जानकारी खोए प्राथमिक तथ्यों में सेट करना है, इसलिए एक ही तालिका में दो संबंध होने से उद्देश्य का खंडन होता है और संबंधपरक बीजगणित/कैलकुलस जैसी चीजें अधिक जटिल हो जाती हैं।
सामान्य रूप औपचारिक रूप से तार्किक रूप से परिभाषित संरचनाएं हैं, न कि औद्योगिक सर्वोत्तम प्रथाएं जिन्हें स्थिति के अनुकूल बनाया जा सकता है, इसलिए मुझे विवाद के लिए ज्यादा जगह नहीं दिखती है। क्या हमें उनका उपयोग करना चाहिए और उन्हें कैसे संभालना चाहिए यह एक अधिक दिलचस्प विषय है।
जबकि नल सामान्य रूपों का उल्लंघन करते हैं, इसका मतलब यह नहीं है कि आप अपने SQL डेटाबेस में नल का उपयोग नहीं कर सकते हैं। उनमें जोखिम भी है और लाभ भी। मैं उनका भी उपयोग करता हूं, लेकिन विचार के साथ।