अनुशंसित, 2019

संपादक की पसंद

3NF और BCNF के बीच अंतर

सामान्यीकरण एक ऐसी विधि है जो एक संबंध से अतिरेक को हटाती है जिससे सम्मिलन, विलोपन और अद्यतन विसंगतियों को कम किया जाता है जो डेटाबेस के प्रदर्शन को कम करते हैं। इस लेख में, हम दो उच्च सामान्य रूपों यानी 3NF और BCNF के बीच अंतर करेंगे। 3NF और BCNF के बीच मूल अंतर यह है कि 3NF एक संबंध से सकरात्मक निर्भरता को समाप्त करता है और BCNF में होने वाली एक तालिका है, एक संबंध में तुच्छ कार्यात्मक निर्भरता X-> Y को पकड़ना चाहिए, यदि X सुपर कुंजी है।

आइए नीचे दिखाए गए तुलना चार्ट की सहायता से 3NF और BCNF के बीच अंतर पर चर्चा करें।

तुलना चार्ट

तुलना के लिए आधार3NFBCNF
संकल्पनाकोई भी गैर-प्राइम विशेषता कैंडिडेट कुंजी पर ट्रांसेटिव रूप से निर्भर नहीं होनी चाहिए।किसी संबंध में किसी भी तुच्छ निर्भरता के लिए R का कहना है कि X-> Y, X, संबंध R की एक प्रमुख कुंजी है।
निर्भरतासभी निर्भरता का त्याग किए बिना 3NF प्राप्त किया जा सकता है।बीसीएनएफ में निर्भरता को संरक्षित नहीं किया जा सकता है।
सड़नदोषरहित अपघटन 3NF में प्राप्त किया जा सकता है।दोषरहित अपघटन BCNF में प्राप्त करना कठिन है।

3NF की परिभाषा

किसी तालिका या रिलेशन को थर्ड नॉर्मल फॉर्म में माना जाता है, यदि टेबल पहले से ही 2NF में हो और रिलेशनशिप के कैंडिडेट पर कोई नॉन-प्राइम एट्रैक्टिवली निर्भर न हो।

इसलिए, इससे पहले कि मैं 3NF में एक तालिका को सामान्य करने की प्रक्रिया को संबोधित करूं, मुझे उम्मीदवार कुंजी पर चर्चा करने की अनुमति दें। एक कैंडिडेट कुंजी न्यूनतम सुपर कुंजी होती है अर्थात न्यूनतम विशेषताओं वाली एक सुपर कुंजी जो किसी संबंध की सभी विशेषताओं को परिभाषित कर सकती है। इसलिए, अपनी तालिका को सामान्य करने की प्रक्रिया में, पहले, आप किसी दिए गए संबंध की उम्मीदवार कुंजी को पहचानते हैं। उम्मीदवार कुंजी का हिस्सा होने वाली विशेषताएँ मुख्य विशेषताएँ हैं, और वे विशेषताएँ जो उम्मीदवार कुंजी का हिस्सा नहीं हैं, गैर-प्रमुख विशेषताएँ हैं

अब यदि हम R (A, B, C, D, E, F) से संबंध रखते हैं और हमारे पास संबंध R के लिए फ़ंक्शन निर्भरताएँ हैं।

कार्यात्मक निर्भरताओं का अवलोकन करते हुए, हम यह निष्कर्ष निकाल सकते हैं कि AB संबंध R के लिए एक उम्मीदवार कुंजी है क्योंकि कुंजी AB का उपयोग करते हुए हम एक संबंध R में सभी विशेषता के लिए मूल्य खोज सकते हैं। इसलिए A, B प्रमुख गुण बन जाते हैं क्योंकि वे एक साथ उम्मीदवार कुंजी बनाते हैं। C, D, E, F की विशेषताएँ गैर-प्रधान विशेषताएँ बन जाती हैं क्योंकि उनमें से कोई भी उम्मीदवार कुंजी का हिस्सा नहीं है।

तालिका 2NF में है क्योंकि कोई भी गैर-प्रमुख विशेषता आंशिक रूप से उम्मीदवार कुंजी पर निर्भर नहीं है

लेकिन, प्रदान की गई कार्यात्मक निर्भरता के बीच एक सकरात्मक निर्भरता देखी जाती है, क्योंकि विशेषता एफ सीधे उम्मीदवार कुंजी एबी पर निर्भर नहीं है। इसके बजाय, विशेषता F, विशेषता D के माध्यम से प्रत्याशी कुंजी AB पर गुणात्मक रूप से निर्भर है। जब तक D की विशेषता नहीं है, तब तक हम उम्मीदवार कुंजी AB से F के गुण मान तक पहुँच सकते हैं। यदि विशेषता D का मान NULL है तो हम उम्मीदवार कुंजी AB की सहायता से F का मान कभी नहीं पा सकते / खोज सकते हैं। यही कारण है कि 3NF संबंधों से सकर्मक निर्भरता को हटाने की मांग करता है।

इसलिए, इस परिवर्तनशील निर्भरता को दूर करने के लिए, हमें संबंध R को विभाजित करने की आवश्यकता है। एक संबंध को विभाजित करते समय हमेशा उम्मीदवार कुंजी रखें, और सभी विशेषताएँ जो पहले संबंध में उस उम्मीदवार कुंजी पर निर्भर करती हैं। अगले विभाजित संबंध में, हम उस विशेषता को स्थान देंगे, जो सकर्मक निर्भरता का कारण बनती है और दूसरे संबंध में उस पर निर्भर होने वाली विशेषताएँ भी।

अब, टेबल R1 और R2 3NF में हैं क्योंकि इसमें कोई आंशिक और सकर्मक निर्भरता नहीं बची है। संबंध R1 (A, B, C, D, E) के पास उम्मीदवार कुंजी AB है, जबकि संबंध R2 (D, E) के पास D अपनी उम्मीदवार कुंजी के रूप में है।

बीसीएनएफ की परिभाषा

BCNF को 3NF से अधिक मजबूत माना जाता है। बीसीएनएफ में होने वाला संबंध 3 एनएफ में होना चाहिए। और जहां भी एक गैर-तुच्छ कार्यात्मक निर्भरता A -> B संबंध R में है, तो A को संबंध R का एक सुपरकी होना चाहिए। जैसा कि हम जानते हैं, Super key एक कुंजी है जिसमें एकल गुण या विशेषताओं का समूह निर्धारित होता है जो संपूर्ण एक संबंध की विशेषताएं।

अब, बीसीएनएफ को बेहतर तरीके से समझने के लिए एक उदाहरण पर चलते हैं। आइए, मान लें कि हमारे पास एक रिश्ता आर (ए, बी, सी, डी, एफ) है, जिसमें कार्यात्मक निर्भरताएं हैं।

संबंध R को देखकर, हम कह सकते हैं कि A और BF संबंध R की उम्मीदवार कुंजी हैं, क्योंकि वे अकेले संबंध R में सभी विशेषताओं के लिए मूल्य खोज सकते हैं। इसलिए A, B, F मुख्य गुण हैं जबकि, C और D गैर-प्रमुख विशेषताएँ हैं। ऊपर मौजूद कार्यात्मक निर्भरताओं में कोई सकरात्मक निर्भरता नहीं देखी गई है। इसलिए, तालिका R 3NF में है।

लेकिन एक कार्यात्मक निर्भरता यानी डी -> एफ बीसीएनएफ की परिभाषा का उल्लंघन कर रहा है, जिसके अनुसार, यदि डी -> एफ मौजूद है, तो डी सुपर कुंजी होनी चाहिए जो यहां मामला नहीं है। इसलिए हम संबंध R को विभाजित करेंगे।

अब, तालिकाएँ R1 nd R2 BCNF में हैं। संबंध R1 में दो उम्मीदवार कुंजियाँ A और B हैं, R1 की तुच्छ कार्यात्मक निर्भरता यानी A-> BCD और B -> ACD, BCNF के लिए A और B संबंध के लिए सुपर कीज़ हैं। Relation R2 में D अपनी उम्मीदवार कुंजी के रूप में है और कार्यात्मक निर्भरता D -> F भी BCNF के लिए है क्योंकि D एक सुपर की है।

3NF और BCNF के बीच महत्वपूर्ण अंतर

  1. 3NF बताता है कि किसी भी गैर-प्रमुख विशेषता को संबंध की उम्मीदवार कुंजी पर सकारत्मक रूप से निर्भर नहीं होना चाहिए। दूसरी ओर, बीसीएनएफ कहता है कि यदि एक तुच्छ कार्यात्मक निर्भरता एक्स -> वाई एक संबंध के लिए मौजूद है; तो X एक सुपर कुंजी होनी चाहिए।
  2. 3NF संबंध की निर्भरता का त्याग किए बिना प्राप्त किया जा सकता है। हालांकि, बीसीएनएफ प्राप्त करते समय निर्भरता को संरक्षित नहीं किया जा सकता है।
  3. पुरानी तालिका से किसी भी जानकारी को खोए बिना 3NF प्राप्त किया जा सकता है, जबकि BCNF प्राप्त करते समय हम पुरानी तालिका से कुछ जानकारी को ढीला कर सकते हैं।

निष्कर्ष:

बीसीएनएफ 3 एनएफ की तुलना में बहुत अधिक प्रतिबंधात्मक है जो तालिका को सामान्य करने में मदद करते हैं। 3NF में संबंध न्यूनतम अतिरेक है जो BCNF द्वारा आगे हटा दिया गया है।

Top