database - 3 एनएफ और बीसीएनएफ के बीच क्या अंतर है?



database-design relational-database (1)

3 एनएफ और बीसीएनएफ के बीच का अंतर सूक्ष्म है।

3NF

परिभाषा

एक संबंध 3 एनएफ में है यदि यह 2 एनएफ में है और कोई गैर-प्राइम विशेषता पारदर्शी रूप से प्राथमिक कुंजी पर निर्भर करती है। दूसरे शब्दों में, एक संबंध आर 3 एनएफ में है यदि प्रत्येक कार्यात्मक निर्भरता X ⟶ ए में आर निम्न शर्तों में से कम से कम एक से मुलाकात की जाती है:

  1. एक्स आर में एक कुंजी या सुपरकी है
  2. ए आर में एक प्रमुख विशेषता है

उदाहरण

निम्नलिखित संबंधों को देखते हुए:

EMP_DEPT (प्रथम नाम, कर्मचारी संख्या, दिनांकऑफबर्थ, पता, विभाग संख्या, विभागनाम)

एक कर्मचारी केवल एक विभाग में काम कर सकता है और प्रत्येक विभाग में कई कर्मचारी हैं।

उम्मीदवार कुंजी कर्मचारी संख्या है

निम्नलिखित कार्यात्मक निर्भरताओं पर विचार करें:

  1. कर्मचारी संख्या ⟶ फर्स्टनाम, दिनांकऑफबर्थ, पता, विभाग संख्या
  2. विभाग संख्या ⟶ विभागनाम

ऊपर दी गई परिभाषा को देखते हुए यह निष्कर्ष निकालना संभव है कि संबंध EMP_DEPT 3 एनएफ में नहीं है क्योंकि दूसरी कार्यात्मक निर्भरता 3 एनएफ की 2 स्थितियों में से किसी एक को पूरा नहीं करती है:

  1. विभाग Number EMP_DEPT में एक कुंजी या सुपरकी नहीं है
  2. विभाग नाम EMP_DEPT में एक प्रमुख विशेषता नहीं है

BCNF

परिभाषा

एक संबंध आर बीसीएनएफ में है यदि यह 3 एनएफ में है और प्रत्येक कार्यात्मक निर्भरता एक्स ⟶ ए में आर के लिए, एक्स आर में एक कुंजी या सुपरकी है। दूसरे शब्दों में, 3 एनएफ और बीसीएनएफ के बीच एकमात्र अंतर यह है कि बीसीएनएफ में यह मौजूद नहीं है 3 एनएफ की दूसरी शर्त। यह बीसीएनएफ की तुलना में बीसीएनएफ कठोर बनाता है क्योंकि बीसीएनएफ में कोई संबंध 3 एनएफ में होगा, लेकिन जरूरी नहीं कि 3 एनएफ में हर संबंध बीसीएनएफ में होगा।

उदाहरण

निम्नलिखित संबंधों को देखते हुए:

STUDENT_COURSE (छात्र संख्या, सामाजिक सुरक्षा संख्या, पाठ्यक्रम संख्या)

एक छात्र कई पाठ्यक्रमों में सहायता कर सकता है और निश्चित रूप से कई छात्र हो सकते हैं।

उम्मीदवार कुंजी हैं:

  1. सोशल सिक्योरिटी नम्बर , कोर्स नम्बर
  2. छात्र संख्या , कोर्स संख्या

निम्नलिखित कार्यात्मक निर्भरताओं पर विचार करें:

  1. studentNumber ⟶ socialSecurityNumber
  2. socialSecurityNumber ⟶ studentNumber

उपरोक्त निश्चितता को देखते हुए यह निष्कर्ष निकालना संभव है कि STUDENT_COURSE बीसीएनएफ में कम से कम छात्र नम्बर STUDENT_COURSE में कुंजी या सुपरकी नहीं है।

क्या कोई मुझे 3 एनएफ और बीसीएनएफ के बीच अंतर समझा सकता है? यह बहुत अच्छा होगा अगर आप कुछ उदाहरण भी प्रदान कर सकते हैं। धन्यवाद।





bcnf