प्राथमिक कुंजी बनाम विदेशी कुंजी: क्या अंतर है?

विषय - सूची:

Anonim

प्राथमिक कुंजी और विदेशी कुंजी के बीच अंतर जानने से पहले, आइए जानें:

कुंजी क्या हैं?

कुंजियाँ एक विशेषता है जो आपको एक संबंध (तालिका) में एक पंक्ति (टुपल) की पहचान करने में मदद करती है। वे आपको दो तालिकाओं के बीच संबंध खोजने की अनुमति देते हैं। कुंजियाँ उस तालिका में एक या अधिक स्तंभों के संयोजन से तालिका में विशिष्ट रूप से एक पंक्ति को पहचानने में आपकी सहायता करती हैं। डेटाबेस कुंजी तालिका से एक अद्वितीय रिकॉर्ड या पंक्ति खोजने के लिए भी सहायक है।

डाटाबेस रिलेशनशिप क्या है?

डेटाबेस संबंध एक या एक से अधिक तालिकाओं के बीच का संबंध है जो जुड़ने वाले बयानों का उपयोग करके बनाया जाता है। इसका उपयोग डेटाबेस से डेटा को कुशलतापूर्वक प्राप्त करने के लिए किया जाता है। मुख्य रूप से तीन प्रकार के रिश्ते होते हैं 1) एक-से-एक, 2) एक-से-कई, 3) कई-से-कई।

प्राथमिक कुंजी क्या है?

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

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

विदेशी कुंजी क्या है?

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

प्रमुख स्रोत:

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

प्राथमिक कुंजी का उपयोग क्यों करें?

यहां प्राथमिक कुंजी का उपयोग करने के विपक्ष / लाभ दिए गए हैं:

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

विदेशी कुंजी का उपयोग क्यों करें?

विदेशी कुंजी का उपयोग करने के महत्वपूर्ण कारण इस प्रकार हैं:

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

प्राथमिक कुंजी का उदाहरण

वाक्य - विन्यास:

नीचे प्राथमिक कुंजी का सिंटैक्स है:

CREATE TABLE (Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);

यहाँ,

  • Table_Name आपके द्वारा बनाई गई तालिका का नाम है।
  • Column_Name प्राथमिक कुंजी वाले कॉलम का नाम है।

उदाहरण:

अध्ययन अनुक्रमांक नाम उपनाम ईमेल
1 1 1 टॉम कीमत इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा।
१२ छेद राइट इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा।
१३ दाना नतन इस ईमेल पते की सुरक्षा स्पैममबोट से की जा रही है। इसे देखने के लिए आपको जावास्क्रिप्ट सक्षम करना होगा।

ऊपर दिए गए उदाहरण में, हमने एक छात्र तालिका बनाई है जिसमें StudID, Roll No, First Name, Last Name और Email जैसे कॉलम हैं। स्टड को एक प्राथमिक कुंजी के रूप में चुना जाता है क्योंकि यह तालिका में अन्य पंक्तियों की विशिष्ट पहचान कर सकता है।

विदेशी कुंजी का उदाहरण

वाक्य - विन्यास:

नीचे विदेशी कुंजी का वाक्य विन्यास है:

CREATE TABLE 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

यहाँ,

  • पैरामीटर तालिका नाम उस तालिका के नाम को इंगित करता है जिसे आप बनाने जा रहे हैं।
  • पैरामीटर कॉलम 1, कॉलम 2 ... उन स्तंभों को दर्शाता है जिन्हें तालिका में जोड़ने की आवश्यकता है।
  • बाधा, आपके द्वारा बनाई जा रही बाधा का नाम बताती है।
  • संदर्भ प्राथमिक कुंजी के साथ एक तालिका का संकेत देते हैं।

उदाहरण:

विभाग विभाग का नाम
001 विज्ञान
002 है अंग्रेज़ी
005 है संगणक
शिक्षक आईडी Fname Lname
B002 डेविड वार्नर
B017 सारा यूसुफ
B009 माइक ब्रंटन

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

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

शिक्षक आईडी विभाग Fname Lname
B002 002 है डेविड वार्नर
B017 002 है सारा यूसुफ
B009 001 माइक ब्रंटन

इस अवधारणा को Referential Integrity के रूप में भी जाना जाता है।

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

यहां प्राथमिक कुंजी और विदेशी कुंजी के बीच महत्वपूर्ण अंतर है:

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