Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> SQL

बॉयस-कॉड नॉर्मल फॉर्म (बीसीएनएफ)


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 में हैं।

<पैकेज> . के लिए उम्मीदवार कुंजी टेबल पैकेज और ग्राउंड हैं

<कल बुकिंग> . के लिए उम्मीदवार कुंजी टेबल हैं {ग्राउंड, बिगिन_टाइम} और {ग्राउंड, एंड_टाइम}

विसंगति समाप्त हो गई क्योंकि हमने पैकेज को <पैकेज> . में एक कुंजी के रूप में उपयोग किया था संबंध।


  1. दूसरा सामान्य फॉर्म (2NF)

    2NF क्या है? सामान्यीकरण का दूसरा चरण 2NF है। एक तालिका 2NF में होती है, केवल अगर कोई संबंध 1NF में है और सभी नियमों को पूरा करता है, और प्रत्येक गैर-कुंजी विशेषता पूरी तरह से प्राथमिक कुंजी पर निर्भर है। दूसरा सामान्य प्रपत्र प्राथमिक कुंजियों पर आंशिक निर्भरता को समाप्त करता है। आइए एक उदाहरण

  1. तीसरा सामान्य फॉर्म (3NF)

    3NF क्या है? सामान्यीकरण में तीसरा चरण 3NF है। एक तालिका 3NF में होती है, केवल तभी जब कोई संबंध 2NF में हो और उसमें कोई ट्रांजिटिव फंक्शनल डिपेंडेंसी न हो आइए एक उदाहरण देखें - उदाहरण (तालिका 3NF का उल्लंघन करती है) Movie_ID Listing_ID Listing_Type DVD_Price ($) 0089 007 कॉमेडी

  1. Django में प्रपत्र विजेट

    इस लेख में, हम देखेंगे कि Django रूप में विजेट्स का उपयोग कैसे करें। फ़्रंटएंड को बेहतर बनाने के लिए विजेट शांत सहायक हो सकते हैं। विजेट एचटीएमएल तत्व हैं जो Django फॉर्म, टेक्स्टरेरा, इनपुट, पासवर्ड इनपुट इत्यादि से प्रस्तुत किए जाते हैं, सभी विजेट हैं। सबसे पहले एक Django प्रोजेक्ट और एक ऐप बनाते