आइए नीचे दिखाए गए तुलना चार्ट की सहायता से 3NF और BCNF के बीच अंतर पर चर्चा करें।
तुलना चार्ट
तुलना के लिए आधार | 3NF | BCNF |
---|---|---|
संकल्पना | कोई भी गैर-प्राइम विशेषता कैंडिडेट कुंजी पर ट्रांसेटिव रूप से निर्भर नहीं होनी चाहिए। | किसी संबंध में किसी भी तुच्छ निर्भरता के लिए R का कहना है कि X-> Y, X, संबंध R की एक प्रमुख कुंजी है। |
निर्भरता | सभी निर्भरता का त्याग किए बिना 3NF प्राप्त किया जा सकता है। | बीसीएनएफ में निर्भरता को संरक्षित नहीं किया जा सकता है। |
सड़न | दोषरहित अपघटन 3NF में प्राप्त किया जा सकता है। | दोषरहित अपघटन BCNF में प्राप्त करना कठिन है। |
3NF की परिभाषा
किसी तालिका या रिलेशन को थर्ड नॉर्मल फॉर्म में माना जाता है, यदि टेबल पहले से ही 2NF में हो और रिलेशनशिप के कैंडिडेट पर कोई नॉन-प्राइम एट्रैक्टिवली निर्भर न हो।
इसलिए, इससे पहले कि मैं 3NF में एक तालिका को सामान्य करने की प्रक्रिया को संबोधित करूं, मुझे उम्मीदवार कुंजी पर चर्चा करने की अनुमति दें। एक कैंडिडेट कुंजी न्यूनतम सुपर कुंजी होती है अर्थात न्यूनतम विशेषताओं वाली एक सुपर कुंजी जो किसी संबंध की सभी विशेषताओं को परिभाषित कर सकती है। इसलिए, अपनी तालिका को सामान्य करने की प्रक्रिया में, पहले, आप किसी दिए गए संबंध की उम्मीदवार कुंजी को पहचानते हैं। उम्मीदवार कुंजी का हिस्सा होने वाली विशेषताएँ मुख्य विशेषताएँ हैं, और वे विशेषताएँ जो उम्मीदवार कुंजी का हिस्सा नहीं हैं, गैर-प्रमुख विशेषताएँ हैं ।
अब यदि हम R (A, B, C, D, E, F) से संबंध रखते हैं और हमारे पास संबंध R के लिए फ़ंक्शन निर्भरताएँ हैं।
तालिका 2NF में है क्योंकि कोई भी गैर-प्रमुख विशेषता आंशिक रूप से उम्मीदवार कुंजी पर निर्भर नहीं है
लेकिन, प्रदान की गई कार्यात्मक निर्भरता के बीच एक सकरात्मक निर्भरता देखी जाती है, क्योंकि विशेषता एफ सीधे उम्मीदवार कुंजी एबी पर निर्भर नहीं है। इसके बजाय, विशेषता F, विशेषता D के माध्यम से प्रत्याशी कुंजी AB पर गुणात्मक रूप से निर्भर है। जब तक D की विशेषता नहीं है, तब तक हम उम्मीदवार कुंजी AB से F के गुण मान तक पहुँच सकते हैं। यदि विशेषता D का मान NULL है तो हम उम्मीदवार कुंजी AB की सहायता से F का मान कभी नहीं पा सकते / खोज सकते हैं। यही कारण है कि 3NF संबंधों से सकर्मक निर्भरता को हटाने की मांग करता है।
इसलिए, इस परिवर्तनशील निर्भरता को दूर करने के लिए, हमें संबंध R को विभाजित करने की आवश्यकता है। एक संबंध को विभाजित करते समय हमेशा उम्मीदवार कुंजी रखें, और सभी विशेषताएँ जो पहले संबंध में उस उम्मीदवार कुंजी पर निर्भर करती हैं। अगले विभाजित संबंध में, हम उस विशेषता को स्थान देंगे, जो सकर्मक निर्भरता का कारण बनती है और दूसरे संबंध में उस पर निर्भर होने वाली विशेषताएँ भी।
बीसीएनएफ की परिभाषा
BCNF को 3NF से अधिक मजबूत माना जाता है। बीसीएनएफ में होने वाला संबंध 3 एनएफ में होना चाहिए। और जहां भी एक गैर-तुच्छ कार्यात्मक निर्भरता A -> B संबंध R में है, तो A को संबंध R का एक सुपरकी होना चाहिए। जैसा कि हम जानते हैं, Super key एक कुंजी है जिसमें एकल गुण या विशेषताओं का समूह निर्धारित होता है जो संपूर्ण एक संबंध की विशेषताएं।
अब, बीसीएनएफ को बेहतर तरीके से समझने के लिए एक उदाहरण पर चलते हैं। आइए, मान लें कि हमारे पास एक रिश्ता आर (ए, बी, सी, डी, एफ) है, जिसमें कार्यात्मक निर्भरताएं हैं।
लेकिन एक कार्यात्मक निर्भरता यानी डी -> एफ बीसीएनएफ की परिभाषा का उल्लंघन कर रहा है, जिसके अनुसार, यदि डी -> एफ मौजूद है, तो डी सुपर कुंजी होनी चाहिए जो यहां मामला नहीं है। इसलिए हम संबंध R को विभाजित करेंगे।
3NF और BCNF के बीच महत्वपूर्ण अंतर
- 3NF बताता है कि किसी भी गैर-प्रमुख विशेषता को संबंध की उम्मीदवार कुंजी पर सकारत्मक रूप से निर्भर नहीं होना चाहिए। दूसरी ओर, बीसीएनएफ कहता है कि यदि एक तुच्छ कार्यात्मक निर्भरता एक्स -> वाई एक संबंध के लिए मौजूद है; तो X एक सुपर कुंजी होनी चाहिए।
- 3NF संबंध की निर्भरता का त्याग किए बिना प्राप्त किया जा सकता है। हालांकि, बीसीएनएफ प्राप्त करते समय निर्भरता को संरक्षित नहीं किया जा सकता है।
- पुरानी तालिका से किसी भी जानकारी को खोए बिना 3NF प्राप्त किया जा सकता है, जबकि BCNF प्राप्त करते समय हम पुरानी तालिका से कुछ जानकारी को ढीला कर सकते हैं।
निष्कर्ष:
बीसीएनएफ 3 एनएफ की तुलना में बहुत अधिक प्रतिबंधात्मक है जो तालिका को सामान्य करने में मदद करते हैं। 3NF में संबंध न्यूनतम अतिरेक है जो BCNF द्वारा आगे हटा दिया गया है।