बॉयस-कोड नॉर्मल फॉर्म (BCNF) का लक्ष्य एक रिलेशनल डेटाबेस के कॉलम और टेबल को व्यवस्थित करके डेटा अखंडता बढ़ाना है ताकि डेटाबेस नॉर्मलाइज़ेशन प्राप्त किया जा सके। डेटाबेस नॉर्मलाइज़ेशन तब होता है जब टेबल के बीच स्थापित संबंध होते हैं और जब टेबल में डेटाबेस को अधिक लचीला बनाने और डेटा को संरक्षित करने के लिए परिभाषित नियम होते हैं।
डेटाबेस नॉर्मलाइज़ेशन के लक्ष्य
डेटाबेस नॉर्मलाइज़ेशन के लक्ष्य अनावश्यक डेटा को समाप्त करना और यह सुनिश्चित करना है कि डेटा निर्भरताएं समझ में आएं। एक डेटाबेस नॉर्मलाइज़्ड होता है जब वही डेटा एक से अधिक टेबल में संग्रहीत नहीं होता और जब केवल संबंधित डेटा एक टेबल में संग्रहीत होता है।
बॉयस-कोड नॉर्मल फॉर्म की उत्पत्ति
दिशानिर्देशों की एक श्रृंखला का पालन यह सुनिश्चित करता है कि डेटाबेस नॉर्मलाइज़्ड हैं। इन दिशानिर्देशों को नॉर्मल फॉर्म कहा जाता है और इन्हें एक से पांच तक संख्या दी जाती है। एक रिलेशनल डेटाबेस को नॉर्मलाइज़्ड कहा जाता है यदि यह पहले तीन फॉर्म पूरा करता है: 1NF, 2NF, और 3NF।
BCNF को 1974 में रेमंड बॉयस और एडगर कोड द्वारा थर्ड नॉर्मल फॉर्म (3NF) के विस्तार के रूप में बनाया गया था। वे डेटाबेस स्कीमा बनाने के लिए काम कर रहे थे जो कम्प्यूटेशनल समय को कम करने के लक्ष्य के साथ अतिरेक को कम करें। थर्ड नॉर्मल फॉर्म प्राथमिक कुंजी पर निर्भर नहीं रहने वाले कॉलम को हटा देता है, साथ ही पहले और दूसरे नॉर्मल फॉर्म के दिशानिर्देशों को पूरा करता है। BCNF, जिसे कभी-कभी 3.5NF कहा जाता है, 3NF की सभी आवश्यकताओं को पूरा करता है और यह आवश्यक है कि उम्मीदवार कुंजियों की टेबल में अन्य विशेषताओं पर कोई निर्भरता न हो।
उम्मीदवार कुंजियाँ और BCNF
एक उम्मीदवार कुंजी एक टेबल में एक कॉलम या कॉलम का संयोजन है जो डेटाबेस में एक अद्वितीय कुंजी बनाता है। विशेषताओं का संयोजन किसी अन्य डेटा का संदर्भ लिए बिना एक डेटाबेस रिकॉर्ड की पहचान करता है। प्रत्येक टेबल में कई उम्मीदवार कुंजियाँ हो सकती हैं, जिनमें से कोई भी प्राथमिक कुंजी के रूप में योग्य हो सकती है। एक टेबल में केवल एक प्राथमिक कुंजी होती है।
उम्मीदवार कुंजियाँ अद्वितीय होनी चाहिए।
एक संबंध BCNF में होता है यदि प्रत्येक निर्धारक (determinant) एक उम्मीदवार कुंजी है। एक डेटाबेस टेबल पर विचार करें जो कर्मचारी जानकारी संग्रहीत करती है और जिसमें विशेषताएँ Employee_Id, First_name, Last_name, और Title हैं।
| Employee Id | First name | Last name | Title |
|---|---|---|---|
| 13133 | Emily | Smith | Manager |
| 13134 | Jim | Smith | Associate |
| 13135 | Emily | Jones | Associate |
इस टेबल में, फ़ील्ड Employee_Id first_name और last_name निर्धारित करता है। इसी तरह, टपल (First_name, Last_name) Employee_id निर्धारित करता है।
इस डेटाबेस के लिए उम्मीदवार कुंजी Employee_Id है क्योंकि यह एकमात्र मान है जिसे दूसरी पंक्ति द्वारा उपयोग नहीं किया जा सकता।
अक्सर पूछे जाने वाले प्रश्न
- बॉयस-कोड नॉर्मल फॉर्म की आवश्यकताएं क्या हैं?
एक टेबल बॉयस-कोड नॉर्मल फॉर्म (BCNF) की आवश्यकताओं को पूरा करती है यदि सभी निर्धारक उम्मीदवार कुंजियाँ हैं और संबंध थर्ड नॉर्मल फॉर्म (3NF) में है। 3NF फर्स्ट नॉर्मल फॉर्म (1NF) और सेकंड नॉर्मल फॉर्म (2NF) के नियमों को पूरा करता है, और सभी कॉलम प्राथमिक कुंजी पर निर्भर हैं। - फोर्थ नॉर्मल फॉर्म और बॉयस-कोड नॉर्मल फॉर्म में क्या अंतर है?
फोर्थ नॉर्मल फॉर्म (4NF) डेटाबेस नॉर्मलाइज़ेशन में बॉयस-कोड नॉर्मल फॉर्म (BCNF) के बाद एक स्तर है। 4NF, 3NF की आवश्यकताओं को पूरा करता है जैसे BCNF करता है। हालांकि, 4NF टेबल में कोई मल्टीवैल्यूड निर्भरताएं (many-to-one रिलेशनशिप) नहीं होतीं, जबकि BCNF टेबल में ये निर्भरताएं हो सकती हैं।