3एनएफ बनाम बीसीएनएफ
सामान्यीकरण एक प्रक्रिया है जो रिलेशनल डेटाबेस में डेटा में मौजूद अतिरेक को कम करने के लिए की जाती है। यह प्रक्रिया मुख्य रूप से बड़ी तालिकाओं को कम अतिरेक के साथ छोटी तालिकाओं में विभाजित करेगी। ये छोटी तालिकाएँ सुपरिभाषित संबंधों के माध्यम से एक-दूसरे से संबंधित होंगी। एक अच्छी तरह से सामान्यीकृत डेटाबेस में, डेटा में किसी भी परिवर्तन या संशोधन के लिए केवल एक तालिका को संशोधित करने की आवश्यकता होगी। थर्ड नॉर्मल फॉर्म (3NF) 1971 में एडगर एफ। कोडड द्वारा पेश किया गया था, जो रिलेशनल मॉडल और सामान्यीकरण की अवधारणा के आविष्कारक भी हैं। बॉयस-कॉड नॉर्मल फॉर्म (बीसीएनएफ) 1974 में कॉड और रेमंड एफ।बॉयस।
3NF क्या है?
3NF संबंधपरक डेटाबेस सामान्यीकरण में उपयोग किया जाने वाला तीसरा सामान्य रूप है। कॉड की परिभाषा के अनुसार, एक तालिका को 3NF में कहा जाता है, यदि और केवल यदि, वह तालिका दूसरे सामान्य रूप (2NF) में है, और तालिका में प्रत्येक विशेषता जो उम्मीदवार कुंजी से संबंधित नहीं है, सीधे निर्भर होनी चाहिए उस तालिका की प्रत्येक उम्मीदवार कुंजी। 1982 में कार्लो ज़ानियोलो ने 3NF के लिए एक अलग तरह से व्यक्त परिभाषा तैयार की। 3NF का अनुपालन करने वाली तालिकाओं में आम तौर पर ऐसी विसंगतियां नहीं होती हैं जो तालिका में रिकॉर्ड डालने, हटाने या अद्यतन करने के दौरान होती हैं।
बीसीएनएफ क्या है?
BCNF (3.5NF के रूप में भी जाना जाता है) संबंधपरक डेटाबेस सामान्यीकरण में उपयोग किया जाने वाला एक और सामान्य रूप है। इसे कुछ विसंगतियों को पकड़ने के लिए पेश किया गया था जिन्हें 3NF द्वारा संबोधित नहीं किया गया है। बीसीएनएफ में एक तालिका कहा जाता है, अगर और केवल अगर, फॉर्म ए → बी की प्रत्येक निर्भरता के लिए जो गैर-तुच्छ हैं, ए एक सुपर-कुंजी है। एक तालिका को विघटित करना जो बीसीएनएफ सामान्य रूप में नहीं है, बीसीएनएफ फॉर्म में तालिकाओं के उत्पादन की गारंटी नहीं देता है (जबकि मूल तालिका में मौजूद निर्भरता को संरक्षित करते हुए)।
3NF और BCNF में क्या अंतर है?
3NF और BCNF दोनों सामान्य रूप हैं जिनका उपयोग रिलेशनल डेटाबेस में तालिकाओं में अतिरेक को कम करने के लिए किया जाता है। एक तालिका में जो बीसीएनएफ सामान्य रूप में है, फॉर्म ए → बी के प्रत्येक गैर-तुच्छ कार्यात्मक निर्भरता के लिए, ए एक सुपर-कुंजी है, जबकि एक तालिका जो 3 एनएफ का अनुपालन करती है वह 2 एनएफ में होनी चाहिए, और प्रत्येक गैर-प्राइम विशेषता सीधे उस तालिका के प्रत्येक उम्मीदवार कुंजी पर निर्भर होनी चाहिए। BCNF को 3NF की तुलना में अधिक मजबूत सामान्य रूप माना जाता है और इसे कुछ ऐसी विसंगतियों को पकड़ने के लिए विकसित किया गया था जिन्हें 3NF द्वारा कैप्चर नहीं किया जा सकता था। BCNF प्रपत्र का अनुपालन करने वाली तालिका प्राप्त करने के लिए 3NF में मौजूद तालिका को विघटित करने की आवश्यकता होगी। प्रश्नों को निष्पादित करते समय इस अपघटन के परिणामस्वरूप अतिरिक्त जुड़ने के संचालन (या कार्टेशियन उत्पाद) होंगे। इससे गणना का समय बढ़ जाएगा। दूसरी ओर, BCNF का अनुपालन करने वाली तालिकाओं में केवल 3NF का अनुपालन करने वाली तालिकाओं की तुलना में कम अतिरेक होंगे। इसके अलावा, अधिकांश समय, एक तालिका प्राप्त करना संभव है जो निर्भरता संरक्षण और दोषरहित जुड़ाव को बाधित किए बिना 3NF का अनुपालन करता है।लेकिन बीसीएनएफ के साथ यह हमेशा संभव नहीं होता है।