डाटाबेस निर्भरता क्या हैं?

डेटाबेस निर्भरता एक ऐसा विषय है जो अक्सर छात्रों और डेटाबेस पेशेवर दोनों को भ्रमित करता है। सौभाग्य से, वे जटिल नहीं हैं और कई उदाहरणों के उपयोग के माध्यम से सबसे अच्छा चित्रित किया जा सकता है। इस लेख में, हम सामान्य डेटाबेस निर्भरता प्रकारों की जांच करते हैं।

डेटाबेस निर्भरता / कार्यात्मक निर्भरता

एक डेटाबेस में एक निर्भरता होती है जब एक ही डेटाबेस तालिका में संग्रहीत जानकारी विशिष्ट तालिका में संग्रहीत अन्य जानकारी को विशिष्ट रूप से निर्धारित करती है। आप इसे एक रिश्ते के रूप में भी वर्णित कर सकते हैं जहां एक विशेषता (या गुणों का एक सेट) के मूल्य को जानने के लिए आपको एक ही तालिका में किसी अन्य विशेषता (या गुणों का सेट) का मूल्य बताने के लिए पर्याप्त है।

यह कहकर कि तालिका में विशेषताओं के बीच निर्भरता समान कह रही है कि उन विशेषताओं के बीच एक कार्यात्मक निर्भरता है। यदि डेटाबेस में निर्भरता है कि विशेषता बी विशेषता ए पर निर्भर है, तो आप इसे "ए -> बी" के रूप में लिखेंगे।

उदाहरण के लिए, सामाजिक सुरक्षा संख्या (एसएसएन) और नाम सहित कर्मचारी विशेषताओं की एक तालिका में, यह कहा जा सकता है कि नाम एसएसएन (या एसएसएन -> नाम) पर निर्भर है क्योंकि कर्मचारी का नाम विशिष्ट रूप से उनके एसएसएन से निर्धारित किया जा सकता है। हालांकि, रिवर्स स्टेटमेंट (नाम -> एसएसएन) सच नहीं है क्योंकि एक से अधिक कर्मचारी का नाम समान हो सकता है लेकिन विभिन्न एसएसएन।

मामूली कार्यात्मक निर्भरता

एक छोटी कार्यात्मक निर्भरता तब होती है जब आप गुणों के संग्रह पर एक विशेषता की कार्यात्मक निर्भरता का वर्णन करते हैं जिसमें मूल विशेषता शामिल होती है। उदाहरण के लिए, "{ए, बी} -> बी" एक मामूली कार्यात्मक निर्भरता है, जैसा कि "{name, SSN} -> SSN" है। इस प्रकार की कार्यात्मक निर्भरता को तुच्छ कहा जाता है क्योंकि इसे सामान्य ज्ञान से लिया जा सकता है। यह स्पष्ट है कि यदि आप पहले ही बी के मूल्य को जानते हैं, तो बी के मूल्य को उस ज्ञान द्वारा विशिष्ट रूप से निर्धारित किया जा सकता है।

पूर्ण कार्यात्मक निर्भरता

एक पूर्ण कार्यात्मक निर्भरता तब होती है जब आप पहले से ही कार्यात्मक निर्भरता के लिए आवश्यकताओं को पूरा करते हैं और कार्यात्मक निर्भरता कथन के बाईं ओर विशेषताओं के सेट को और भी कम नहीं किया जा सकता है। उदाहरण के लिए, "{एसएसएन, आयु} -> नाम" एक कार्यात्मक निर्भरता है, लेकिन यह पूर्ण कार्यात्मक निर्भरता नहीं है क्योंकि आप निर्भरता संबंध को प्रभावित किए बिना कथन के बाईं ओर से आयु को हटा सकते हैं।

पारगमन निर्भरता

पारस्परिक निर्भरता तब होती है जब अप्रत्यक्ष संबंध होता है जो कार्यात्मक निर्भरता का कारण बनता है। उदाहरण के लिए, "ए -> सी" एक संक्रमणीय निर्भरता है जब यह केवल सत्य है क्योंकि "ए -> बी" और "बी -> सी" दोनों सत्य हैं।

बहुगुणित निर्भरता

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

निर्भरता का महत्व

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