2NF क्या है?
सामान्यीकरण का दूसरा चरण 2NF है।
एक तालिका 2NF में होती है, केवल अगर कोई संबंध 1NF में है और सभी नियमों को पूरा करता है, और प्रत्येक गैर-कुंजी विशेषता पूरी तरह से प्राथमिक कुंजी पर निर्भर है।
दूसरा सामान्य प्रपत्र प्राथमिक कुंजियों पर आंशिक निर्भरता को समाप्त करता है।
आइए एक उदाहरण देखें -
उदाहरण (तालिका 2NF का उल्लंघन करती है)
StudentID | ProjectID | StudentName | ProjectName |
S89 | P09 | Olivia | भौगोलिक स्थान |
S76 | P07 | Jacob | क्लस्टर एक्सप्लोरेशन |
S56 | P03 | Ava | IoT Devices |
S92 | P05 | एलेक्जेंड्रा | क्लाउड परिनियोजन |
उपरोक्त तालिका में, हमारे पास आंशिक निर्भरता है; आइए देखें कि कैसे -
प्रमुख प्रमुख विशेषताएं हैं StudentID और ProjectID ।
जैसा कि कहा गया है, गैर-प्रमुख विशेषताएँ यानी StudentName और प्रोजेक्टनाम आंशिक आश्रित होने के लिए उम्मीदवार कुंजी के भाग पर कार्यात्मक रूप से निर्भर होना चाहिए।
विद्यार्थी का नाम StudentID . द्वारा निर्धारित किया जा सकता है , जो संबंध को आंशिक निर्भर बनाता है।
प्रोजेक्टनाम ProjectID . द्वारा निर्धारित किया जा सकता है , जो संबंध को आंशिक निर्भर बनाता है।
इसलिए, <StudentProject> संबंध सामान्यीकरण में 2NF का उल्लंघन करता है और इसे एक खराब डेटाबेस डिज़ाइन माना जाता है।
उदाहरण (तालिका 2NF में परिवर्तित)
2NF पर आंशिक निर्भरता और उल्लंघन को दूर करने के लिए, उपरोक्त तालिकाओं को विघटित करें -
StudentID | ProjectID | विद्यार्थी का नाम |
S89 | P09 | Olivia |
S76 | P07 | Jacob |
S56 | P03 | Ava |
S92 | P05 | एलेक्जेंड्रा |
ProjectID | ProjectName |
P09 | भौगोलिक स्थान |
P07 | क्लस्टर एक्सप्लोरेशन |
P03 | IoT Devices |
P05 | क्लाउड परिनियोजन |
अब संबंध डेटाबेस सामान्यीकरण के दूसरे सामान्य रूप में है