database - SQL: Using NULL values vs. default values -
पेशेवर और विपक्ष का उपयोग करने के लिए < डिफ़ॉल्ट मान ?
पीएस के विरोध में एसक्यूएल में उन्हें NULL मान यहां बहुत सारे सवाल पूछे गए हैं लेकिन कोई भी मेरे प्रश्न का उत्तर नहीं देता।
एक शून्य मूल्य डेटाबेस एक सिस्टम मान है जो भंडारण के एक बाइट को लेता है और यह इंगित करता है कि कोई स्थान या शून्य या किसी अन्य डिफ़ॉल्ट मान के विपरीत मूल्य मौजूद नहीं है। शून्य मूल्य वाले डेटाबेस में फ़ील्ड का मतलब है कि इस सेल की सामग्री को देखे जाने के समय अज्ञात है। एक कॉलम जो शून्य मान की अनुमति देता है, उस कॉलम में सभी मूल्यों के साथ पंक्तियों को सम्मिलित करने की अनुमति देता है। डिफ़ॉल्ट मूल्यों के विपरीत नाउल मूल्यों का उपयोग करने के कई पेशेवर और विपक्ष हैं:
पेशेवरों
NULL मान में डेटा प्रकार नहीं है, इसलिए हो सकता है किसी भी डेटा संरचना और किसी भी डेटाबेस कॉलम पर डाला दूसरी ओर, डिफ़ॉल्ट मानों को उनके डेटा प्रकार को निर्दिष्ट करने की आवश्यकता होती है और एक कॉलम में एक डिफ़ॉल्ट मान दूसरे कॉलम में समान दिख सकता है, लेकिन यह एक अलग प्रकार का हो सकता है।
नल अक्सर स्कीमा में उपयोग किया जाता है जहां एक मूल्य वैकल्पिक होता है यह अज्ञात क्षेत्रों के लिए अतिरिक्त नियमों को लागू किए बिना डेटा प्रविष्टि को छोड़ने का एक सुविधाजनक तरीका है, जैसे छोड़े गए डेटा का प्रतिनिधित्व करने के लिए पूर्णांक फ़ील्ड में नकारात्मक मानों को संचित करना।
क्योंकि शून्य मान में केवल 1 बिट का स्मृति अंतरिक्ष को डेटाबेस के अनुकूल करते समय वे उपयोगी हो सकते हैं। उन मानों का उपयोग करना डिफ़ॉल्ट मानों की तुलना में अधिक कुशल है, उदा। चरित्र के 8 बिट्स और पूर्णांक के 16bits।
जबकि आपके सिस्टम की आवश्यकता समय के साथ बदल सकती है और उनके साथ डिफ़ॉल्ट मान प्रकार, NULL मान हमेशा शून्य है, इसलिए डेटा प्रकार को अपडेट करने की कोई आवश्यकता नहीं है।
तालिका स्कीमा के लिए नल को असाइन करने से तालिका सत्यापन के साथ भी मदद मिल सकती है, इस अर्थ में कि शून्य नल मानदंड वाले कॉलम को डालने के लिए एक मूल्य की आवश्यकता होगी। डिफ़ॉल्ट मानों में ये क्षमता नहीं होती है।
विपक्ष
नल मूल्य आसानी से खाली अक्षर तारों के साथ उलझन में हैं, जो चयनित होने पर उपयोगकर्ता को रिक्त मान लौटाते हैं । इस अर्थ में, डिफ़ॉल्ट मान कम भ्रमित हैं और सुरक्षित विकल्प हैं, जब तक कि डिफ़ॉल्ट मान रिक्त स्ट्रिंग पर सेट नहीं होता है।
यदि डेटाबेस में शून्य मानों की अनुमति है, तो वे डिजाइनर को कुछ अतिरिक्त समय और काम कर सकते हैं क्योंकि वे डेटाबेस के तर्क को और अधिक जटिल बना सकते हैं, खासकर जब जगहों में शून्य मानों की बहुत सारी तुलना हो।
स्रोत: