एक फ़ॉरेन की एक टेबल के रिकॉर्ड को दूसरी टेबल के रिकॉर्ड से जोड़ती है। ऑर्डर टेबल में एक customer_id फ़ील्ड है। यह फ़ील्ड एक फ़ॉरेन की है जो कस्टमर टेबल की प्राइमरी की को इंगित करती है। यह लिंक सुनिश्चित करता है कि प्रत्येक ऑर्डर एक वास्तविक ग्राहक से संबंधित है। इसके बिना, ऑर्डर उन ग्राहकों को संदर्भित कर सकते हैं जो मौजूद नहीं हैं। डेटाबेस इस संबंध को लागू करता है।
फॉरेन कीज़ सिर्फ़ संबंधों को दस्तावेज़ित करने से कहीं ज़्यादा काम करती हैं। वे संदर्भ अखंडता को लागू करती हैं। यदि आप ग्राहक तालिका में मौजूद न होने वाले customer_id के साथ कोई ऑर्डर डालने का प्रयास करते हैं, तो डेटाबेस उसे अस्वीकार कर देता है। यदि आप किसी ऐसे ग्राहक को हटाने का प्रयास करते हैं जिसके पास ऑर्डर हैं, तो डेटाबेस नियम के आधार पर विलोपन को या तो रोक देता है या उसे आगे बढ़ाता है। यह लागूकरण अनाथ रिकॉर्ड और असंगत डेटा को रोकता है। फॉरेन कीज़ क्वेरी के प्रदर्शन को बेहतर बनाने में भी मदद करती हैं। डेटाबेस जॉइन को अनुकूलित करने के लिए इस संबंध का उपयोग कर सकता है। सभी डेटाबेस फॉरेन कीज़ को लागू नहीं करते हैं। कुछ NoSQL डेटाबेस संदर्भ अखंडता को एप्लिकेशन पर छोड़ देते हैं। यह डेवलपर्स को अधिक लचीलापन देता है लेकिन साथ ही अधिक ज़िम्मेदारी भी। एप्लिकेशन को यह सुनिश्चित करना होगा कि संदर्भ मान्य हैं। यदि यह विफल होता है, तो डेटा असंगत हो जाता है। फॉरेन कीज़ एक बाधा हैं। बाधाएँ तब तक असुविधाजनक होती हैं जब तक वे किसी आपदा को रोक नहीं देतीं।
विदेशी कुंजी नियम
- प्रतिबंधित करें — यदि संदर्भ मौजूद हैं तो विलोपन को रोकें
- कैस्केड — संदर्भ रिकॉर्ड को स्वचालित रूप से हटाएं या अपडेट करें
- null सेट करें — डिलीट करने पर फॉरेन की को null पर सेट करें
- कोई कार्रवाई नहीं - ऑपरेशन की अनुमति दें और बाद में जांच करें
फ़ॉरेन की एक लिंक और एक गारंटी है। लिंक टेबल को जोड़ता है। गारंटी उन्हें सुसंगत बनाए रखती है।
Comments
No comments yet. Be the first to share a thought.
Leave a comment