SQL डेटाबेस में विदेशी कुंजी क्या हैं?

SQL डेटाबेस में विदेशी कुंजी क्या हैं?

विदेशी कुंजियाँ डेटाबेस प्रशासकों को SQL डेटाबेस प्रबंधन प्रणाली के भीतर मौजूद विभिन्न कनेक्शनों को आसानी से पहचानने की अनुमति देती हैं।





SQL डेटाबेस प्रबंधन प्रणाली के भीतर डेटा पर गणितीय संचालन करता है। इन डेटाबेस में अलग-अलग तालिकाएँ होती हैं जो प्रत्येक एक विशिष्ट इकाई पर डेटा संग्रहीत करती हैं। यदि आपके पास कार रेंटल डेटाबेस है, तो उस डेटाबेस में एक इकाई (या तालिका) ग्राहक होगी (जो प्रत्येक ग्राहक पर सभी व्यक्तिगत डेटा संग्रहीत करेगी)।





इन डेटाबेस तालिकाओं में पंक्तियाँ और स्तंभ होते हैं, जहाँ प्रत्येक पंक्ति में एक रिकॉर्ड होता है और प्रत्येक स्तंभ में विशेषता-विशिष्ट डेटा होता है।





एक डेटाबेस प्रबंधन प्रणाली में, प्रत्येक रिकॉर्ड (या पंक्ति) अद्वितीय होना चाहिए।

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

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



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

मैं अपने ईमेल खातों को कैसे सिंक करूं

इसलिए, SQL डेटाबेस प्रबंधन प्रणाली में प्रत्येक रिकॉर्ड में प्राथमिक कुंजी होनी चाहिए।





डेटाबेस में प्राथमिक कुंजी का उपयोग करना

SQL का उपयोग करके डेटाबेस प्रबंधन प्रणाली में प्राथमिक कुंजियों को शामिल करने के लिए, आप एक नई तालिका बनाते समय इसे सामान्य विशेषता के रूप में जोड़ सकते हैं। तो ग्राहकों की तालिका में चार विशेषताएँ (या कॉलम) होंगी:

  • CarOwnerID (जो प्राथमिक कुंजी संग्रहीत करेगा)
  • पहला नाम
  • उपनाम
  • फ़ोन नंबर

सम्बंधित: SQL में एक टेबल कैसे बनाएं





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

प्राथमिक कुंजी उदाहरण के साथ एक रिकॉर्ड

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

उपरोक्त SQL कोड पहले से मौजूद में एक नया रिकॉर्ड जोड़ देगा ग्राहकों टेबल। नीचे दी गई तालिका दो जॉन ब्राउन रिकॉर्ड के साथ नई ग्राहक तालिका दिखाती है।

विदेशी कुंजी

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

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

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

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

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

कार रेंटल डेटाबेस पर वापस जाने के लिए, प्रत्येक ग्राहक को सही कार से जोड़ने के लिए आपको यह समझना होगा कि एक ग्राहक (विषय) एक कार (वस्तु) किराए पर लेता है। इसलिए, विदेशी कुंजी कारों की मेज में होनी चाहिए।

एक विदेशी कुंजी के साथ एक तालिका उत्पन्न करने वाला SQL कोड मानक से थोड़ा अलग है।

एक विदेशी कुंजी उदाहरण के साथ एक तालिका बनाना

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

जैसा कि आप ऊपर दिए गए कोड में देख सकते हैं, एक विदेशी कुंजी को स्पष्ट रूप से इस तरह पहचाना जाना चाहिए, साथ ही नई तालिका से जुड़ी प्राथमिक कुंजी के संदर्भ में।

कॉल करते समय अपना नंबर कैसे ब्लॉक करें

सम्बंधित: शुरुआती के लिए आवश्यक एसक्यूएल कमांड चीट शीट

नई तालिका में एक रिकॉर्ड जोड़ने के लिए, आपको यह सुनिश्चित करना होगा कि विदेशी कुंजी फ़ील्ड में मान मूल तालिका के प्राथमिक कुंजी फ़ील्ड के मान से मेल खाता है।

एक विदेशी कुंजी उदाहरण के साथ एक रिकॉर्ड जोड़ना

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

उपरोक्त कोड नए में एक नया रिकॉर्ड बनाता है कारों तालिका, निम्नलिखित परिणाम का उत्पादन।

कार टेबल

ऊपर दी गई तालिका से, आप सही जॉन ब्राउन की पहचान कर सकते हैं जो रिकॉर्ड में विदेशी कुंजी द्वारा मर्सिडीज-बेंज किराए पर लेता है।

अग्रिम विदेशी कुंजी

डेटाबेस में विदेशी कुंजी का उपयोग करने के दो अन्य तरीके हैं।

यदि आप ऊपर दी गई विदेशी कुंजी की परिभाषा को देखते हैं, तो आप पाएंगे कि यह कहती है कि एक विदेशी कुंजी एक विशिष्ट पहचानकर्ता या अद्वितीय पहचानकर्ताओं का संयोजन हो सकती है।

कार रेंटल डेटाबेस उदाहरण पर वापस जाने पर, आप देखेंगे कि हर बार जब कोई ग्राहक उस कार को किराए पर लेता है, तो एक नया रिकॉर्ड (उसी कार का) बनाना, उसके उद्देश्य को विफल कर देता है कारों टेबल। यदि कारें बिक्री के लिए हैं और एक ही ग्राहक को एक बार बेची जाती हैं, तो मौजूदा डेटाबेस एकदम सही है; लेकिन यह देखते हुए कि कारें किराए पर हैं, इस डेटा को दर्शाने का एक बेहतर तरीका है।

समग्र कुंजी

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

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

समग्र विदेशी कुंजी के साथ एक तालिका बनाना

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

उपरोक्त कोड एक महत्वपूर्ण बिंदु को दर्शाता है; हालाँकि SQL डेटाबेस में एक तालिका में एक से अधिक विदेशी कुंजी हो सकती हैं, लेकिन इसमें केवल एक प्राथमिक कुंजी हो सकती है। ऐसा इसलिए है क्योंकि रिकॉर्ड की पहचान करने का केवल एक अनूठा तरीका होना चाहिए।

एक अद्वितीय कुंजी रखने के लिए तालिका में सभी तीन विशेषताओं को संयोजित करना आवश्यक है। एक ग्राहक एक ही दिन में एक से अधिक कार किराए पर ले सकता है (इसलिए ग्राहक आईडी, ग्राहक पहचान तथा दिनांक किराए पर लिया गया एक अच्छा संयोजन नहीं है) एक ही दिन में एक से अधिक ग्राहक एक ही कार किराए पर ले सकते हैं (इसलिए लाइसेंस संख्या तथा दिनांक किराए पर लिया गया एक अच्छा संयोजन नहीं है)।

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

गुमनाम ईमेल कैसे भेजें

विदेशी प्राथमिक कुंजी

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

मान लें कि फ्रेड (जो कार रेंटल कंपनी में काम करता है) कर्मचारी तालिका के तहत कंपनी के डेटाबेस में है। कुछ वर्षों के बाद, वह पर्यवेक्षक बन जाता है और पर्यवेक्षक तालिका में जुड़ जाता है।

फ़्रेड अभी भी एक कर्मचारी है और उसके पास अभी भी वही आईडी नंबर होगा। तो फ्रेड की कर्मचारी आईडी अब पर्यवेक्षक तालिका में एक विदेशी कुंजी के रूप में है जो उस तालिका में प्राथमिक कुंजी भी बन जाएगी (क्योंकि अब फ्रेड के लिए एक नया आईडी नंबर बनाने का कोई मतलब नहीं है कि वह पर्यवेक्षक है)।

अब आप SQL डेटाबेस में विदेशी कुंजियों की पहचान कर सकते हैं

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

यदि आपको लगता है कि विदेशी कुंजियाँ दिलचस्प हैं, तो आपके पास एक फ़ील्ड दिवस होगा जब आप अपने SQL डेटाबेस को क्वेरी करने के लिए प्रोजेक्ट और चयन संचालन का उपयोग करना शुरू करेंगे।

साझा करना साझा करना कलरव ईमेल SQL में प्रोजेक्ट और सिलेक्शन ऑपरेशंस का उपयोग करना सीखें

इन उदाहरणों के साथ प्रोजेक्ट और चयन संचालन को समझकर SQL रिलेशनल डेटाबेस के साथ पकड़ में आएं।

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • प्रोग्रामिंग
  • एसक्यूएल
  • डेटाबेस
लेखक के बारे में कदीशा कीन(21 लेख प्रकाशित)

कदीशा कीन एक पूर्ण-स्टैक सॉफ़्टवेयर डेवलपर और तकनीकी/प्रौद्योगिकी लेखक हैं। उसके पास कुछ सबसे जटिल तकनीकी अवधारणाओं को सरल बनाने की विशिष्ट क्षमता है; उत्पादन सामग्री जिसे किसी भी तकनीकी नौसिखिए द्वारा आसानी से समझा जा सकता है। उसे लिखने, दिलचस्प सॉफ्टवेयर विकसित करने और दुनिया की यात्रा (वृत्तचित्रों के माध्यम से) करने का शौक है।

कदीशा कीन . की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें