Skip to main content

डेटाबेस संबंध क्या है?

What is Database & SQL? (जून 2026)

What is Database & SQL? (जून 2026)
Anonim

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

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

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

एक विदेशी कुंजी एक और उम्मीदवार कुंजी है (प्राथमिक कुंजी नहीं) किसी अन्य तालिका में डेटा को रिकॉर्ड करने के लिए उपयोग की जाती है।

उदाहरण के लिए, इन दो तालिकाओं पर विचार करें जो पहचानते हैं कि कौन सा शिक्षक किस कोर्स को सिखाता है।

यहां, पाठ्यक्रम तालिका की प्राथमिक कुंजी कोर्स_आईडी है। इसकी विदेशी कुंजी शिक्षक_आईडी है:

पाठ्यक्रम
पाठ्यक्रम आईडीकोर्स का नामTeacher_ID
Course_001जीवविज्ञानTeacher_001
Course_002गणितTeacher_001
Course_003अंग्रेज़ीTeacher_003

आप देख सकते हैं कि पाठ्यक्रमों में विदेशी कुंजी शिक्षकों में प्राथमिक कुंजी से मेल खाती है:

शिक्षकों की
Teacher_IDअध्यापक का नाम
Teacher_001कारमेन
Teacher_002वेरोनिका
Teacher_003जॉर्ज

हम कह सकते हैं कि Teacher_ID विदेशी कुंजी ने एक स्थापित करने में मदद की है संबंध पाठ्यक्रम और शिक्षक तालिकाओं के बीच।

डेटाबेस संबंधों के प्रकार

विदेशी कुंजी, या अन्य उम्मीदवार कुंजी का उपयोग करके, आप तालिकाओं के बीच तीन प्रकार के रिश्तों को लागू कर सकते हैं:

एक से एक: इस प्रकार के रिश्ते संबंध के प्रत्येक पक्ष पर केवल एक रिकॉर्ड की अनुमति देता है।

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

अनेको के लिये एक: एक से कई रिश्ते एक टेबल में एक रिकॉर्ड को किसी अन्य तालिका में एकाधिक रिकॉर्ड से संबंधित होने की अनुमति देता है।

ऐसे डेटाबेस पर विचार करें जिसमें ग्राहक और ऑर्डर टेबल हैं।

एक ग्राहक कई ऑर्डर खरीद सकता है, लेकिन एक ही ऑर्डर कई ग्राहकों से जोड़ा नहीं जा सका। इसलिए ऑर्डर तालिका में एक विदेशी कुंजी होगी जो ग्राहक तालिका की प्राथमिक कुंजी से मेल खाती है, जबकि ग्राहक तालिका में ऑर्डर तालिका में कोई विदेशी कुंजी नहीं होती है।

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

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

डेटाबेस संबंध क्या महत्वपूर्ण हैं?

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

शिक्षक और पाठ्यक्रम
Teacher_IDअध्यापक का नामकोर्स
Teacher_001कारमेनजीवविज्ञान, गणित
Teacher_002वेरोनिकागणित
Teacher_003जॉर्जअंग्रेज़ी

यह डिज़ाइन लचीला है और डेटाबेस सामान्यीकरण, प्रथम सामान्य फॉर्म (1 एनएफ) के पहले सिद्धांत का उल्लंघन करता है, जिसमें कहा गया है कि प्रत्येक तालिका कक्ष में डेटा का एक एकल, अलग टुकड़ा होना चाहिए।

या शायद हमने 1 एनएफ को लागू करने के लिए कारमेन के लिए दूसरा रिकॉर्ड जोड़ने का फैसला किया:

शिक्षक और पाठ्यक्रम
Teacher_IDअध्यापक का नामकोर्स
Teacher_001कारमेनजीवविज्ञान
Teacher_001कारमेनगणित
Teacher_002वेरोनिकागणित
Teacher_003जॉर्जअंग्रेज़ी

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

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

इस तालिका को दो तालिकाओं में तोड़ना, शिक्षक और पाठ्यक्रम (जैसा कि ऊपर दिखाया गया है), डेटा के बीच उचित संबंध बनाता है और इसलिए डेटा स्थिरता और सटीकता सुनिश्चित करने में मदद करता है।