BCA / B.Tech 10 min read

Dependancy & Types in Hindi

Dependency & Types in DBMS in Hindi | DBMS में Dependency हिंदी में :


निर्भरता (Dependency) क्या है 

डेटाबेस प्रबंधन प्रणाली (DBMS) में निर्भरता (Dependency) का तात्पर्य उन संबंधों से है, जिनके माध्यम से एक विशेषता (attribute) का मान किसी अन्य विशेषता के मान पर निर्भर करता है। यह अवधारणा डेटाबेस डिज़ाइन और सामान्यीकरण (Normalization) की प्रक्रियाओं में अत्यधिक महत्वपूर्ण है, क्योंकि यह यह निर्धारित करने में मदद करती है कि डेटाबेस में डेटा कैसे संरचित और संग्रहीत किया जाएगा। किसी डेटाबेस की संरचना में विभिन्न प्रकार की निर्भरता होती है जो डेटाबेस की समग्र अखंडता और कार्यक्षमता को प्रभावित करती है।

निर्भरता मुख्य रूप से यह निर्धारित करने के लिए उपयोग की जाती है कि डेटा को कैसे विभाजित और संरचित किया जाए ताकि डेटा दोहराव और विसंगतियाँ (anomalies) से बचा जा सके। सामान्यीकरण की प्रक्रियाएँ, जैसे फ़र्स्ट नॉर्मल फॉर्म (1NF), सेकंड नॉर्मल फॉर्म (2NF), थर्ड नॉर्मल फॉर्म (3NF) आदि, डेटा में निर्भरता के आधार पर डिज़ाइन की जाती हैं।

निर्भरता डेटाबेस डिज़ाइन और सामान्यीकरण का एक महत्वपूर्ण घटक है। फ़ंक्शनल निर्भरता, मल्टी-वैल्यूड निर्भरता, जॉइन निर्भरता और अन्य निर्भरताएँ डेटाबेस की संरचना और डेटा अखंडता को निर्धारित करती हैं। डेटाबेस को सामान्यीकृत करने की प्रक्रिया में इन निर्भरताओं का सही ढंग से उपयोग किया जाता है ताकि डेटाबेस में डेटा विसंगतियों को रोका जा सके और डेटा की पुनर्प्राप्ति और समग्र संचालन में सुधार हो सके।


Types of Dependency in DBMS in Hindi |  DBMS में निर्भरता के प्रकार :

डेटाबेस में विभिन्न प्रकार की निर्भरता होती है जो विभिन्न संदर्भों में उपयोग की जाती हैं। मुख्य निर्भरताएँ निम्नलिखित हैं:

1. फ़ंक्शनल निर्भरता (Functional Dependency) :

फ़ंक्शनल निर्भरता DBMS में सबसे महत्वपूर्ण प्रकार की निर्भरता है। यह दो विशेषताओं (attributes) के बीच का संबंध दर्शाती है। अगर किसी टेबल में एक कॉलम का मान दूसरे कॉलम के मान पर निर्भर करता है, तो उसे फ़ंक्शनल निर्भरता कहा जाता है। इसे सामान्य रूप से 
𝑋
𝑌
X⇒Y के रूप में व्यक्त किया जाता है, जहाँ 
𝑋
X और 
𝑌
Y टेबल की विशेषताएँ हैं। इसका अर्थ है कि 
𝑋
X का मान 
𝑌
Y के मान को निर्धारित करता है।

उदाहरण :

अगर हमारे पास एक तालिका है जिसमें छात्र का रोल नंबर और उसका नाम है, तो रोल नंबर के आधार पर हम छात्र का नाम पता कर सकते हैं। इसका मतलब है कि छात्र का नाम रोल नंबर पर फ़ंक्शनल रूप से निर्भर है। इसे इस तरह व्यक्त किया जाएगा:
रोल नंबर 
⇒ नाम
फ़ंक्शनल निर्भरता के प्रकार
फ़ंक्शनल निर्भरता के कई उप-प्रकार होते हैं:

2. पूर्ण फ़ंक्शनल निर्भरता (Full Functional Dependency):

 अगर एक विशेषता किसी दूसरे विशेषता पर पूरी तरह निर्भर है, तो इसे पूर्ण फ़ंक्शनल निर्भरता कहा जाता है। इसका अर्थ है कि एक विशेषता का मान पूरी तरह से एक या एक से अधिक विशेषताओं के समूह पर निर्भर करता है।

उदाहरण:

अगर कर्मचारी का वेतन कर्मचारी आईडी पर निर्भर है, तो यह पूर्ण फ़ंक्शनल निर्भरता है।
कर्मचारी आईडी 
⇒ वेतन
आंशिक फ़ंक्शनल निर्भरता (Partial Functional Dependency): आंशिक फ़ंक्शनल निर्भरता तब होती है जब कोई विशेषता किसी अन्य विशेषता के कुछ हिस्से (कुछ विशेषताओं के समूह) पर निर्भर होती है, न कि पूरी तरह से।

उदाहरण:

अगर एक तालिका में प्रोजेक्ट आईडी और कर्मचारी आईडी मिलकर कर्मचारी की भूमिका निर्धारित करते हैं, लेकिन कर्मचारी की भूमिका केवल प्रोजेक्ट आईडी पर निर्भर होती है, तो इसे आंशिक फ़ंक्शनल निर्भरता कहा जाएगा।
प्रोजेक्ट आईडी 
⇒ भूमिका
पारगमनिक फ़ंक्शनल निर्भरता (Transitive Functional Dependency): पारगमनिक फ़ंक्शनल निर्भरता तब होती है जब किसी विशेषता का मान किसी अन्य विशेषता पर निर्भर होता है, जो स्वयं किसी तीसरी विशेषता पर निर्भर होती है।

उदाहरण:

अगर A 
⇒ B और B 
⇒ C, तो A 
⇒ C पारगमनिक निर्भरता कहलाएगी।

3. मल्टी-वैल्यूड निर्भरता (Multivalued Dependency) :

मल्टी-वैल्यूड निर्भरता तब होती है जब एक विशेषता का मान किसी अन्य विशेषता पर इस प्रकार निर्भर होता है कि एक विशेषता के लिए एक से अधिक मान हो सकते हैं, जबकि दूसरी विशेषता स्थिर रहती है। इसे 
𝑋
𝑌
X⇒⇒Y के रूप में व्यक्त किया जाता है, जिसका अर्थ है कि 
𝑋
X का मान 
𝑌
Y के कई मान निर्धारित करता है।

उदाहरण:

एक कंपनी के कर्मचारियों की जानकारी को संग्रहीत करने वाली तालिका में एक कर्मचारी के पास कई कौशल (skills) और कई प्रोजेक्ट हो सकते हैं। यहाँ, कर्मचारी का कौशल और प्रोजेक्ट दोनों स्वतंत्र रूप से कर्मचारी आईडी पर निर्भर हैं। इसे मल्टी-वैल्यूड निर्भरता कहा जाएगा:
कर्मचारी आईडी 
⇒⇒ कौशल
कर्मचारी आईडी 
⇒⇒ प्रोजेक्ट

3. जॉइन निर्भरता (Join Dependency) :

जॉइन निर्भरता का मतलब होता है कि एक रिलेशन को कुछ उप-रिलेशन में विभाजित किया जा सकता है, और फिर उन उप-रिलेशन को जॉइन करके मूल रिलेशन को पुनः प्राप्त किया जा सकता है। जॉइन निर्भरता तीसरे सामान्य रूप (3NF) और बॉय-कोड नॉर्मल फॉर्म (BCNF) से भी आगे के नॉर्मल फॉर्म में देखी जाती है।

उदाहरण :

मान लीजिए कि एक रिलेशन 
𝑅
(
𝐴
,
𝐵
,
𝐶
)
R(A,B,C) है और इसे दो उप-रिलेशन 
𝑅
1
(
𝐴
,
𝐵
)
R1(A,B) और 
𝑅
2
(
𝐵
,
𝐶
)
R2(B,C) में विभाजित किया जा सकता है, तो 
𝑅
R में जॉइन निर्भरता होती है।

4. ट्रिवियल निर्भरता (Trivial Dependency) :

ट्रिवियल निर्भरता तब होती है जब किसी रिलेशन की एक विशेषता या विशेषताओं का समूह स्वयं पर निर्भर होता है। इसे इस प्रकार व्यक्त किया जाता है: 
𝑋
𝑋
X⇒X या 
𝑋
𝑌
X⇒Y, जहाँ Y, X का सबसेट होता है।

उदाहरण:

𝐴
,
𝐵
𝐴
A,B⇒A एक ट्रिवियल निर्भरता है क्योंकि 
𝐴
A, 
𝐴
,
𝐵
A,B का सबसेट है। 

5. एग्ज़िस्टेंशियल निर्भरता (Existential Dependency) :

यह निर्भरता तब उत्पन्न होती है जब किसी विशेषता का अस्तित्व किसी अन्य विशेषता के अस्तित्व पर निर्भर करता है। यह निर्भरता डेटाबेस के संबंध (relationships) और उसकी इकाइयों (entities) के बीच विशेष रूप से देखी जाती है।

उदाहरण :

  • अगर एक विभाग का अस्तित्व तब तक होता है जब तक कि उसमें कर्मचारी होते हैं, तो कर्मचारी विभाग पर एग्ज़िस्टेंशियल निर्भरता दर्शाता है।
  • डेटाबेस डिज़ाइन में निर्भरता का उपयोग
  • डेटाबेस डिज़ाइन के दौरान, निर्भरताओं को समझना महत्वपूर्ण होता है ताकि डेटाबेस को सामान्यीकृत किया जा सके और डेटा विसंगतियों (anomalies) से बचा जा सके। डेटा विसंगतियाँ जैसे डेटा का दोहराव (redundancy) और असंगति (inconsistency) डेटाबेस के प्रदर्शन को प्रभावित कर सकती हैं। निर्भरताओं के आधार पर सामान्यीकरण के विभिन्न चरणों में तालिकाओं को विभाजित किया जाता है।
  • पहला सामान्य रूप (1NF): तालिका में सभी विशेषताएँ परमाणु (atomic) होनी चाहिए। यानी किसी भी कॉलम में मल्टी-वैल्यूड नहीं होना चाहिए।
  • दूसरा सामान्य रूप (2NF): तालिका 1NF में होनी चाहिए और उसमें कोई आंशिक निर्भरता नहीं होनी चाहिए।
  • तीसरा सामान्य रूप (3NF): तालिका 2NF में होनी चाहिए और उसमें कोई पारगमनिक निर्भरता नहीं होनी चाहिए।
  • बॉय-कोड नॉर्मल फॉर्म (BCNF): यह 3NF का एक मजबूत संस्करण है, जिसमें हर फ़ंक्शनल निर्भरता का निर्धारक सुपरकी (superkey) होना चाहिए।