BCNF थर्ड नॉर्मल फॉर्म (3NF) का एक्सटेंशन है और 3NF से थोड़ा मजबूत है।
एक संबंध R BCNF में है, यदि P -> Q एक तुच्छ कार्यात्मक निर्भरता है और P, R के लिए एक सुपरकी है।
यदि कोई संबंध BCNF में है, तो इसका अर्थ यह होगा कि फ़ंक्शन निर्भरता पर आधारित अतिरेक को हटा दिया गया है, लेकिन कुछ अतिरेक अभी भी हैं।
आइए एक उदाहरण देखते हैं -
<स्पोर्ट्सक्लब>
ग्राउंड | Begin_Time | End_Time | पैकेज |
G01 | 07:00 | 09:00 | सोना |
G01 | 10:00 | 12:00 | सोना |
G01 | 10:30 | 11:00 | कांस्य |
G02 | 10:15 | 11:15 | चांदी |
G02 | 08:00 | 09:00 | चांदी |
उपरोक्त संबंध 1NF, 2NF, 3NF में है, लेकिन BCNF में नहीं है। यहाँ कारण है -
कार्यात्मक निर्भरता {पैकेज-> ग्राउंड}
इसमें निर्धारक विशेषता पैकेज है जिस पर ग्राउंड निर्भर करता है वह न तो उम्मीदवार कुंजी है और न ही उम्मीदवार कुंजी का सुपरसेट है।
<पैकेज>
पैकेज | ग्राउंड |
सोना | G01 |
चांदी | G02 |
कांस्य | G01 |
<कल बुकिंग>
ग्राउंड | प्रारंभ_समय | End_Time |
G01 | 07:00 | 09:00 |
G01 | 10:00 | 12:00 |
G01 | 10:30 | 11:00 |
G02 | 10:15 | 11:15 |
G02 | 08:00 | 09:00 |
अब उपरोक्त तालिकाएँ BCNF में हैं।
<पैकेज> . के लिए उम्मीदवार कुंजी टेबल पैकेज और ग्राउंड हैं
<कल बुकिंग> . के लिए उम्मीदवार कुंजी टेबल हैं {ग्राउंड, बिगिन_टाइम} और {ग्राउंड, एंड_टाइम}
विसंगति समाप्त हो गई क्योंकि हमने पैकेज को <पैकेज> . में एक कुंजी के रूप में उपयोग किया था संबंध।