विदेशी कुंजी - Foreign Key का क्या अर्थ है?

विदेशी कुंजी एक संबंधपरक डेटाबेस तालिका में एक स्तंभ या स्तंभों का समूह है जो दो तालिकाओं में डेटा के बीच एक लिंक प्रदान करता है। यह तालिकाओं के बीच एक क्रॉस-रेफरेंस के रूप में कार्य करता है क्योंकि यह किसी अन्य तालिका की प्राथमिक कुंजी को संदर्भित करता है, जिससे उनके बीच एक लिंक स्थापित होता है।

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

प्राथमिक कुंजी की तुलना में विदेशी कुंजी और उनका कार्यान्वयन अधिक जटिल है।

जबकि एक प्राथमिक कुंजी अपने आप मौजूद हो सकती है, एक विदेशी कुंजी को हमेशा कहीं न कहीं प्राथमिक कुंजी का संदर्भ देना चाहिए। प्राथमिक कुंजी वाली मूल तालिका मूल तालिका है (जिसे संदर्भित तालिका भी कहा जाता है)। इस कुंजी को अन्य तालिकाओं से कई विदेशी कुंजियों द्वारा संदर्भित किया जा सकता है, जिन्हें "चाइल्ड" टेबल के रूप में जाना जाता है।

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

यदि दो डेटाबेस के बीच अखंडता से समझौता किया जाता है, तो त्रुटियां हो सकती हैं।

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

ग्राहक तालिका में प्राथमिक कुंजी का जिक्र करते हुए, ऑर्डर तालिका में CUSTOMER_ID विदेशी कुंजी बन जाती है। आदेश तालिका में एक प्रविष्टि सम्मिलित करने के लिए, विदेशी कुंजी बाधा को संतुष्ट होना चाहिए।

एक CUSTOMER_ID दर्ज करने का प्रयास जो ग्राहक तालिका में मौजूद नहीं है, विफल हो जाता है, इस प्रकार तालिका की संदर्भात्मक अखंडता को बनाए रखता है।

वास्तविक दुनिया के डेटाबेस में, जब भी संदर्भित तालिका में पंक्तियों को अद्यतन या हटा दिया जाता है, तो संदर्भित बाधाओं को लागू करके विदेशी कुंजी और प्राथमिक कुंजी तालिकाओं के बीच अखंडता सुनिश्चित की जा सकती है।

एक विदेशी कुंजी क्रिया से जुड़ी कुछ संदर्भात्मक क्रियाओं में निम्नलिखित शामिल हैं:

झरना

जब पैरेंट टेबल में पंक्तियों को हटा दिया जाता है, तो चाइल्ड टेबल में मेल खाने वाले विदेशी कुंजी कॉलम भी हटा दिए जाते हैं, जिससे कैस्केडिंग डिलीट हो जाता है।

शून्य सेट करें

जब मूल तालिका में एक संदर्भित पंक्ति हटा दी जाती है या अद्यतन की जाती है, तो संदर्भ पंक्ति में विदेशी कुंजी मान संदर्भित अखंडता को बनाए रखने के लिए शून्य पर सेट होते हैं।

ट्रिगर्स

रेफ़रेंशियल क्रियाओं को सामान्य रूप से ट्रिगर के रूप में लागू किया जाता है। कई मायनों में विदेशी कुंजी क्रियाएं उपयोगकर्ता द्वारा परिभाषित ट्रिगर्स के समान होती हैं। उचित निष्पादन सुनिश्चित करने के लिए, आदेशित संदर्भात्मक क्रियाओं को कभी-कभी उनके समकक्ष उपयोगकर्ता-परिभाषित ट्रिगर से बदल दिया जाता है।

सेट डिफ़ॉल्ट

यह संदर्भात्मक क्रिया "सेट नल" के समान है। चाइल्ड टेबल में विदेशी कुंजी मान डिफ़ॉल्ट कॉलम मान पर सेट होते हैं जब मूल तालिका में संदर्भित पंक्ति हटा दी जाती है या अपडेट की जाती है।

रोकना

यह एक विदेशी कुंजी से जुड़ी सामान्य संदर्भात्मक क्रिया है। मूल तालिका में एक मान को तब तक हटाया या अद्यतन नहीं किया जा सकता है जब तक कि इसे किसी अन्य तालिका में किसी विदेशी कुंजी द्वारा संदर्भित किया जाता है।

कोई कार्रवाई नहीं

यह संदर्भात्मक क्रिया "प्रतिबंधित" क्रिया के समान कार्य करती है, सिवाय इसके कि कोई क्रिया-रहित जाँच तालिका को बदलने का प्रयास करने के बाद ही की जाती है।

Post a Comment

0 Comments