विदेशी कुंजी और प्राथमिक कुंजी के बीच महत्वपूर्ण अंतर यह है कि विदेशी कुंजी एक स्तंभ या स्तंभों का एक समूह है जो प्राथमिक कुंजी या किसी अन्य तालिका की उम्मीदवार कुंजी को संदर्भित करता है जबकि प्राथमिक कुंजी एक स्तंभ या स्तंभों का एक समूह है जिसका उपयोग किसी तालिका में एक पंक्ति को विशिष्ट रूप से पहचानने के लिए किया जा सकता है।
एक कॉलम या कॉलम का एक सेट जिसका उपयोग किसी डेटाबेस में एक पंक्ति या पंक्तियों के एक सेट को पहचानने या एक्सेस करने के लिए किया जा सकता है, एक कुंजी कहलाता है। एक रिलेशनल डेटाबेस में एक प्राथमिक कुंजी एक तालिका में स्तंभों का एक संयोजन है जो विशिष्ट रूप से तालिका की एक पंक्ति की पहचान करता है। एक रिलेशनल डेटाबेस में विदेशी कुंजी एक तालिका में एक फ़ील्ड है जो किसी अन्य तालिका की प्राथमिक कुंजी से मेल खाती है।संदर्भ तालिकाओं को पार करने के लिए विदेशी कुंजी का उपयोग किया जाता है।
विदेशी कुंजी क्या है?
विदेशी कुंजी दो तालिकाओं के बीच एक संदर्भात्मक बाधा है। यह एक तालिका में एक स्तंभ या स्तंभों के एक समूह की पहचान करता है, जिसे संदर्भित तालिका कहा जाता है जो किसी अन्य तालिका में स्तंभों के एक सेट को संदर्भित करता है, जिसे संदर्भित तालिका कहा जाता है। संदर्भित तालिका में विदेशी कुंजी या कॉलम प्राथमिक कुंजी या उम्मीदवार कुंजी (एक कुंजी जिसे प्राथमिक कुंजी के रूप में उपयोग किया जा सकता है) होना चाहिए। इसके अलावा, विदेशी कुंजियाँ कई तालिकाओं में डेटा को जोड़ने की अनुमति देती हैं।इसलिए, विदेशी कुंजी में वे मान नहीं हो सकते हैं जो उस तालिका में प्रकट नहीं होते हैं जिसे वह संदर्भित करता है। फिर विदेशी कुंजी द्वारा प्रदान किया गया संदर्भ कई तालिकाओं में जानकारी को जोड़ने में मदद करता है और यह सामान्यीकृत डेटाबेस के साथ आवश्यक हो जाएगा। संदर्भ तालिका में एकाधिक पंक्तियाँ संदर्भित तालिका में एकल पंक्ति को संदर्भित कर सकती हैं।
चित्र 01: विदेशी कुंजी मानचित्रण
एएनएसआई एसक्यूएल मानक में, विदेशी कुंजी बाधा विदेशी कुंजी को परिभाषित करती है। इसके अलावा, तालिका बनाते समय विदेशी कुंजियों को परिभाषित करना संभव है। एक तालिका में कई विदेशी कुंजियाँ हो सकती हैं, और वे विभिन्न तालिकाओं को संदर्भित कर सकती हैं।
प्राथमिक कुंजी क्या है?
प्राथमिक कुंजी एक कॉलम या कॉलम का संयोजन है जो एक रिलेशनल डेटाबेस की तालिका में एक पंक्ति को विशिष्ट रूप से परिभाषित करता है। एक तालिका में अधिकतम एक प्राथमिक कुंजी हो सकती है। प्राथमिक कुंजी निहित नहीं NULL बाधा को लागू करती है। इसलिए, प्राथमिक कुंजी वाले कॉलम में NULL मान नहीं हो सकते। प्राथमिक कुंजी तालिका में एक सामान्य विशेषता हो सकती है जिसे अद्वितीय होने की गारंटी दी जाती है जैसे कि सामाजिक सुरक्षा संख्या, या यह Microsoft SQL सर्वर में वैश्विक रूप से विशिष्ट पहचानकर्ता (GUID) जैसे डेटाबेस प्रबंधन प्रणाली द्वारा उत्पन्न एक अद्वितीय मान हो सकता है।
चित्र 02: प्राथमिक कुंजी
इसके अलावा, एएनएसआई एसक्यूएल मानक में प्राथमिक कुंजी बाधा प्राथमिक कुंजी को परिभाषित करती है। तालिका बनाते समय प्राथमिक कुंजी को परिभाषित करना भी संभव है। इसके अलावा, SQL प्राथमिक कुंजी को एक या अधिक स्तंभों से बना होने की अनुमति देता है, और प्राथमिक कुंजी में शामिल प्रत्येक स्तंभ को पूर्ण रूप से NOT NULL के रूप में परिभाषित किया जाता है। लेकिन कुछ डेटाबेस प्रबंधन प्रणालियों को प्राथमिक कुंजी कॉलम स्पष्ट रूप से NULL बनाने की आवश्यकता होती है।
विदेशी कुंजी और प्राथमिक कुंजी में क्या अंतर है?
विदेशी कुंजी बनाम प्राथमिक कुंजी |
|
विदेशी कुंजी एक संबंधपरक डेटाबेस तालिका में एक स्तंभ या स्तंभों का समूह है जो दो तालिकाओं में डेटा के बीच संबंध प्रदान करता है। | प्राथमिक कुंजी एक विशेष रिलेशनल डेटाबेस टेबल कॉलम या कई कॉलम का संयोजन है जो सभी टेबल रिकॉर्ड को विशिष्ट रूप से पहचानने की अनुमति देता है। |
शून्य | |
विदेशी कुंजी NULL मान स्वीकार करती है। | प्राथमिक कुंजी मान NULL नहीं हो सकता। |
कुंजियों की संख्या | |
टेबल में कई विदेशी कुंजियाँ हो सकती हैं। | तालिका में केवल एक प्राथमिक कुंजी हो सकती है। |
दोहराव | |
टुपल्स में विदेशी कुंजी विशेषता के लिए डुप्लिकेट मान हो सकता है। | एक संबंध में दो टुपल्स में प्राथमिक कुंजी विशेषता के लिए डुप्लिकेट मान नहीं हो सकते हैं। |
सारांश – विदेशी कुंजी बनाम प्राथमिक कुंजी
विदेशी कुंजी और प्राथमिक कुंजी के बीच का अंतर यह है कि विदेशी कुंजी एक स्तंभ या स्तंभों का एक समूह है जो प्राथमिक कुंजी या किसी अन्य तालिका की उम्मीदवार कुंजी को संदर्भित करता है जबकि प्राथमिक कुंजी एक स्तंभ या स्तंभों का एक समूह है जो किसी तालिका में एक पंक्ति को विशिष्ट रूप से पहचानने के लिए उपयोग किया जा सकता है।