डेटाबेस शब्द "रिलेशनल" या "रिलेशनशिप" इस तरीके का वर्णन करता है कि तालिकाओं में डेटा जुड़े हुए हैं।
डेटाबेस की दुनिया में नवागंतुकों को अक्सर डेटाबेस और स्प्रेडशीट के बीच का अंतर देखने में कठिनाई होती है। वे डेटा की सारणी देखते हैं और पहचानते हैं कि डेटाबेस आपको नए तरीकों से डेटा व्यवस्थित करने और क्वेरी करने की अनुमति देता है, लेकिन डेटा के संबंध में संबंधों के महत्व को समझने में विफल रहता है जो संबंधपरक डेटाबेस तकनीक को अपना नाम देता है।
रिश्ते आपको शक्तिशाली तरीकों से विभिन्न डेटाबेस तालिकाओं के बीच कनेक्शन का वर्णन करने की अनुमति देते हैं। इन संबंधों को तब शक्तिशाली क्रॉस-टेबल प्रश्नों को करने के लिए लीवरेज किया जा सकता है, जिन्हें शामिल होने के नाम से जाना जाता है।
डेटाबेस संबंधों के प्रकार
तीन अलग-अलग प्रकार के डेटाबेस रिश्ते हैं, प्रत्येक का नाम तालिका पंक्तियों की संख्या के अनुसार है जो संबंधों में शामिल हो सकते हैं। इन तीनों रिलेशनशिप प्रकारों में से प्रत्येक दो टेबल के बीच मौजूद है।
- एक-से-एक संबंध तब होते हैं जब पहली तालिका में प्रत्येक प्रविष्टि में एक और केवल एक, दूसरी तालिका में समकक्ष होता है। एक-से-एक संबंधों का शायद ही कभी उपयोग किया जाता है क्योंकि यह केवल एक ही तालिका में सभी जानकारी को रखने के लिए अधिक कुशल होता है। कुछ डेटाबेस डिज़ाइनर इस संबंध का लाभ उन तालिकाओं को बनाकर करते हैं जिनमें किसी अन्य तालिका से डेटा का सबसेट होता है।
- एक से कई संबंध डेटाबेस संबंधों का सबसे आम प्रकार हैं। वे तब होते हैं जब तालिका ए में प्रत्येक रिकॉर्ड तालिका बी में एक या एक से अधिक रिकॉर्ड के अनुरूप होता है, लेकिन तालिका बी में प्रत्येक रिकॉर्ड तालिका ए में केवल एक रिकॉर्ड के अनुरूप होता है। उदाहरण के लिए, एक शिक्षक तालिका और प्राथमिक विद्यालय में छात्र तालिका के बीच संबंध डेटाबेस एक से कई रिश्ते होंगे, क्योंकि प्रत्येक छात्र के पास केवल एक शिक्षक होता है, लेकिन प्रत्येक शिक्षक के पास कई छात्र होते हैं। यह एक से कई डिज़ाइन डुप्लिकेट डेटा को खत्म करने में मदद करता है।
- कई से कई संबंध तब होते हैं जब तालिका ए में प्रत्येक रिकॉर्ड तालिका बी में एक या एक से अधिक रिकॉर्ड के अनुरूप होता है, और तालिका बी में प्रत्येक रिकॉर्ड तालिका ए में एक या एक से अधिक रिकॉर्ड के अनुरूप होता है। उदाहरण के लिए, एक शिक्षक और पाठ्यक्रम के बीच संबंध तालिका कई से अधिक हो सकती है क्योंकि प्रत्येक शिक्षक एक से अधिक पाठ्यक्रमों का निर्देश दे सकता है, और प्रत्येक पाठ्यक्रम में एक से अधिक प्रशिक्षक हो सकते हैं।
आत्म-संदर्भ संबंध: एक विशेष मामला
आत्म-संदर्भ संबंध तब होते हैं जब केवल एक तालिका शामिल होती है। एक आम उदाहरण एक कर्मचारी तालिका है जिसमें प्रत्येक कर्मचारी के पर्यवेक्षक के बारे में जानकारी होती है। प्रत्येक पर्यवेक्षक भी एक कर्मचारी होता है और उसका अपना पर्यवेक्षक होता है। इस मामले में, एक से कई आत्म-संदर्भ संबंध हैं, क्योंकि प्रत्येक कर्मचारी के पास एक पर्यवेक्षक होता है, लेकिन प्रत्येक पर्यवेक्षक के पास एक से अधिक कर्मचारी हो सकते हैं।
विदेशी कुंजी के साथ संबंध बनाना
आप विदेशी कुंजी निर्दिष्ट करके तालिकाओं के बीच संबंध बनाते हैं। यह कुंजी संबंधपरक डेटाबेस को बताती है कि टेबल कैसे संबंधित हैं। कई मामलों में, तालिका ए में एक कॉलम में प्राथमिक कुंजी होती है जिन्हें तालिका बी से संदर्भित किया जाता है।
शिक्षकों और छात्र तालिकाओं का उदाहरण फिर से विचार करें। शिक्षक तालिका में केवल एक आईडी, एक नाम, और एक कोर्स कॉलम होता है:
InstructorID | अध्यापक का नाम | कोर्स |
---|---|---|
001 | जॉन डो | अंग्रेज़ी |
002 | जेन श्मो | गणित |
छात्र तालिका में एक आईडी, नाम, और एक विदेशी कुंजी कॉलम शामिल है:
छात्र आईडी | छात्र का नाम | Teacher_FK |
---|---|---|
0200 | लोवेल स्मिथ | 001 |
0201 | ब्रायन शॉर्ट | 001 |
0202 | कॉर्क Mendez | 002 |
0203 | मोनिका जोन्स | 001 |
छात्र तालिका में कॉलम Teacher_FK शिक्षक तालिका में प्रशिक्षक के प्राथमिक कुंजी मान को संदर्भित करता है।
अक्सर, डेटाबेस डिजाइनर कॉलम नाम में "पीके" या "एफके" का उपयोग प्राथमिक कुंजी या विदेशी कुंजी कॉलम को आसानी से पहचानने के लिए करेंगे।
ध्यान दें कि ये दो सारणी शिक्षकों और छात्रों के बीच एक से कई रिश्तों को दर्शाती हैं।
रिश्तों और संदर्भित ईमानदारी
एक बार जब आप किसी तालिका में एक विदेशी कुंजी जोड़ लेते हैं, तो आप एक डेटाबेस बाधा उत्पन्न कर सकते हैं जो दो तालिकाओं के बीच संदर्भित अखंडता को लागू करता है। यह सुनिश्चित करता है कि तालिकाओं के बीच संबंध लगातार बने रहें। जब एक तालिका में दूसरी तालिका में एक विदेशी कुंजी होती है, तो संदर्भित अखंडता की अवधारणा बताती है कि तालिका बी में किसी भी विदेशी कुंजी मान को तालिका ए में मौजूदा रिकॉर्ड का संदर्भ देना चाहिए।
संबंधों को लागू करना
अपने डेटाबेस के आधार पर, आप विभिन्न तरीकों से तालिकाओं के बीच संबंधों को लागू करते हैं। माइक्रोसॉफ्ट एक्सेस एक विज़ार्ड प्रदान करता है जो आपको आसानी से तालिकाओं को जोड़ने और संदर्भित अखंडता को लागू करने की अनुमति देता है।
यदि आप सीधे एसक्यूएल लिख रहे हैं, तो आप प्राथमिक तालिका होने के लिए आईडी कॉलम घोषित करते हुए पहले टेबल शिक्षक बनायेंगे:
टेबल शिक्षक बनाएं (
ऑटोमोट्रीमेंट प्राथमिक कुंजी में प्रशिक्षक,
शिक्षक_नाम VARCHAR (100),
पाठ्यक्रम वचर (100)
);
जब आप छात्र तालिका बनाते हैं, तो आप टीचर_एफके कॉलम को शिक्षक तालिका में InstructorID कॉलम का संदर्भ देने वाली एक विदेशी कुंजी घोषित करते हैं:
टेबल छात्रों को बनाएँ (
छात्र आईडी इंटिस्ट्रेशन प्राथमिक कुंजी,
Student_Name VARCHAR (100), Teacher_FK INT,
विदेशी कुंजी (शिक्षक_एफके) संदर्भ शिक्षक (प्रशिक्षक))
);
टेबल्स में शामिल होने के लिए रिश्तों का उपयोग करना
एक बार जब आप अपने डेटाबेस में एक या अधिक रिश्तों को बना लेते हैं, तो आप कई तालिकाओं से जानकारी को गठबंधन करने के लिए SQL जॉइन क्वेरी का उपयोग करके अपनी शक्ति का लाभ उठा सकते हैं। शामिल होने का सबसे आम प्रकार एक एसक्यूएल इनर जॉइन है, या एक साधारण जुड़ाव है। इस प्रकार का जॉइन उन सभी रिकॉर्ड देता है जो एकाधिक तालिकाओं से जुड़ने की स्थिति को पूरा करते हैं। उदाहरण के लिए, यह जॉइन स्थिति छात्र_नाम, शिक्षक_नाम और पाठ्यक्रम लौटाएगी जहां छात्र तालिका में विदेशी कुंजी शिक्षक तालिका में प्राथमिक कुंजी से मेल खाती है:
छात्रों को चुनें। स्टूडेंट_नाम, शिक्षक। शिक्षक_नाम, शिक्षक। कोर्स
छात्रों से
अंदरूनी शिक्षक शामिल हों
छात्रों पर। टीचर_एफके = शिक्षक। इन्स्ट्रक्टर आईडी;
यह कथन इस तरह की एक सारणी बनाता है:
SQL से स्टेटमेंट में शामिल तालिका से वापसी की गई तालिका
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish