DBMS में प्राथमिक कुंजी और विदेशी कुंजी के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 1 अप्रैल 2021
डेट अपडेट करें: 11 मई 2024
Anonim
डीबीएमएस में प्राथमिक कुंजी और विदेशी कुंजी
वीडियो: डीबीएमएस में प्राथमिक कुंजी और विदेशी कुंजी

विषय


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

इन दोनों के बीच कई अन्य अंतर हैं, आइए नीचे दिए गए तुलना चार्ट की सहायता से उन अंतरों को पहचानें।

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारप्राथमिक कुंजीविदेशी कुंजी
बुनियादीप्राइमरी की एक चुनी हुई उम्मीदवार कुंजी है जो विशिष्ट रूप से एक रिश्ते में एक टपल को परिभाषित करती है।एक तालिका में विदेशी कुंजी अन्य तालिका की प्राथमिक कुंजी को संदर्भित करती है।
शून्यप्राथमिक कुंजी मान कभी भी पूर्ण नहीं हो सकता है।विदेशी कुंजी NULL मान को स्वीकार करती है।
डुप्लिकेटकिसी संबंध में कोई दो टुपल्स प्राथमिक कुंजी विशेषता के लिए डुप्लिकेट मान नहीं रखते हैं।टुपल्स एक विदेशी कुंजी विशेषता के लिए डुप्लिकेट मान ले सकते हैं।
रेंजकिसी संबंध की केवल एक प्राथमिक कुंजी हो सकती है।किसी संबंध में कई विदेशी कुंजियाँ हो सकती हैं।
अस्थायी तालिकाप्राथमिक मुख्य बाधा को अस्थायी तालिकाओं पर परिभाषित किया जा सकता है।अस्थायी मेजों पर विदेशी कुंजी बाधा को परिभाषित नहीं किया जा सकता है।
गुच्छेदार सूचकांकडिफ़ॉल्ट रूप से, एक प्राथमिक कुंजी को अनुक्रमित क्लस्टर किया जाता है।विदेशी कुंजी स्वचालित रूप से अनुक्रमित क्लस्टर नहीं की जाती है; इसे मैन्युअल रूप से करना होगा।
निवेशनहम एक प्राथमिक कुंजी विशेषता के लिए एक मूल्य सम्मिलित कर सकते हैं, भले ही संदर्भित विदेशी कुंजी का मान उसके स्तंभ में न हो।हम किसी विदेशी कुंजी के लिए मान नहीं डाल सकते हैं, यदि वह मान संदर्भित प्राथमिक कुंजी कॉलम में मौजूद नहीं है।
विलोपनप्राथमिक कुंजी मान को हटाने से पहले, सुनिश्चित करें कि मान अभी भी संदर्भित तालिका के विदेशी कुंजी स्तंभ में मौजूद नहीं है।आप परेशान किए बिना विदेशी कुंजी कॉलम से एक मान हटा सकते हैं, चाहे वह मान संदर्भित संबंध के प्राथमिक कुंजी स्तंभ में मौजूद हो।


प्राथमिक कुंजी की परिभाषा

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

डेटाबेस डिजाइनर में से एक चुनता है उम्मीदवार कुंजी एक प्राथमिक कुंजी के रूप में, कुछ बिंदुओं को ध्यान में रखते हुए। पहला विचार एक प्राथमिक कुंजी विशेषता मूल्य है जिसमें कभी नहीं हो सकता है शून्य मूल्य। क्योंकि, यदि प्राथमिक कुंजी विशेषता मान में NULL होता है, तो इसका मतलब है कि हम तालिका में उस रिकॉर्ड की पहचान नहीं कर सकते हैं। यह इकाई अखंडता बाधा का भी उल्लंघन करता है। दूसरा विचार है, कोई दो नहीं एक तालिका में शामिल कर सकते हैं वही प्राथमिक कुंजी विशेषता के लिए मूल्य, क्योंकि यह टुपल्स के बीच विशिष्टता का उल्लंघन करेगा।


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

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

किसी तालिका की प्राथमिक कुंजी जब किसी अन्य तालिका में उपयोग की जाती है तो यह उस तालिका के लिए विदेशी कुंजी बन जाती है। विदेशी प्रमुख बाधाओं पर नीचे चर्चा की गई है।

विदेशी कुंजी की परिभाषा

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

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

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

  1. प्राथमिक विशेषताओं का एक सेट / एक उम्मीदवार कुंजी है जो किसी रिश्ते में एक रिकॉर्ड को विशिष्ट रूप से पहचानता है। हालाँकि, किसी तालिका में एक विदेशी कुंजी किसी अन्य तालिका की प्राथमिक कुंजी को संदर्भित करती है।
  2. किसी भी प्राथमिक कुंजी विशेषताओं में NULL मान नहीं हो सकते, जबकि, एक विदेशी कुंजी विशेषता NULL मान को स्वीकार कर सकती है।
  3. प्राथमिक कुंजी में विशिष्ट विशेषता मान होने चाहिए, जबकि विदेशी कुंजी में डुप्लिकेट विशेषता मान हो सकते हैं।
  4. एक संबंध में कई विदेशी कुंजी हो सकती हैं, लेकिन एक संबंध में केवल एक प्राथमिक कुंजी है।
  5. प्राथमिक मुख्य बाधा अस्थायी टेबलों पर लागू की जा सकती है। हालांकि, अस्थायी टेबल पर विदेशी कुंजी बाधा लागू नहीं की जा सकती है।
  6. प्राथमिक कुंजी डिफ़ॉल्ट रूप से अनुक्रमित अनुक्रमित होती है, जबकि, एक विदेशी कुंजी स्वचालित रूप से क्लस्टर-अनुक्रमित नहीं होती है, लेकिन इसे मैन्युअल रूप से किया जा सकता है।
  7. एक विदेशी कुंजी कॉलम में एक मूल्य सम्मिलित करते समय, सुनिश्चित करें कि सम्मिलित विशेषता मान संदर्भित प्राथमिक कुंजी कॉलम में मौजूद है। हालांकि, प्राथमिक कुंजी कॉलम में सम्मिलन पर कोई प्रतिबंध नहीं है।
  8. प्राथमिक कुंजी कॉलम से मान हटाते समय, सुनिश्चित करें कि हटाए गए विशेषता मान संदर्भित कुंजी कुंजी कॉलम में मौजूद नहीं है। हालाँकि, किसी विदेशी कुंजी कॉलम से मान को हटाने पर कोई बाधा नहीं है।

निष्कर्ष:

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