डेटाबेस की शर्तें रिलेशनल और रिलेशनशिप टेबल में डेटा कनेक्ट होने के तरीके का वर्णन करती हैं। एक रिलेशनल डेटाबेस में एक विशिष्ट कुंजी द्वारा जुड़ी दो या दो से अधिक तालिकाओं की एक श्रृंखला होती है। एक रिलेशनल डेटाबेस असंरचित डेटाबेस से भिन्न होता है, जो बड़े डेटा पहल में आम हैं। संबंधपरक डेटाबेस को सख्त नियमों की आवश्यकता होती है कि तालिकाओं को कैसे परिभाषित किया जाता है और तालिकाओं के बीच एक वैध संबंध क्या बनता है।
डेटाबेस संबंधों के प्रकार
रिलेशनशिप आपको डेटाबेस टेबल के बीच के कनेक्शन का शक्तिशाली तरीके से वर्णन करने की अनुमति देता है। इन संबंधों को तब शक्तिशाली क्रॉस-टेबल क्वेरी करने के लिए इस्तेमाल किया जा सकता है, जिसे जॉइन के रूप में जाना जाता है।
डेटाबेस संबंध तीन प्रकार के होते हैं, प्रत्येक को संबंध में शामिल तालिका पंक्तियों की संख्या के अनुसार नामित किया जाता है। इन तीन संबंध प्रकारों में से प्रत्येक दो तालिकाओं के बीच मौजूद है।
- एक-से-एक संबंध तब होता है जब पहली तालिका में प्रत्येक प्रविष्टि में दूसरी तालिका में केवल एक समकक्ष होता है। एक-से-एक संबंध शायद ही कभी उपयोग किए जाते हैं क्योंकि अक्सर सभी सूचनाओं को एक ही तालिका में रखना अधिक कुशल होता है। कुछ डेटाबेस डिज़ाइनर ऐसी तालिकाएँ बनाकर इस संबंध का लाभ उठाते हैं जिनमें किसी अन्य तालिका से डेटा का सबसेट होता है।
- एक-से-अनेक संबंध डेटाबेस संबंध का सबसे सामान्य प्रकार हैं। वे तब होते हैं जब तालिका ए में प्रत्येक रिकॉर्ड तालिका बी में एक या अधिक रिकॉर्ड से मेल खाता है, लेकिन तालिका बी में प्रत्येक रिकॉर्ड तालिका ए में केवल एक रिकॉर्ड से मेल खाता है। उदाहरण के लिए, प्राथमिक विद्यालय में शिक्षक तालिका और छात्र तालिका के बीच संबंध डेटाबेस संभवतः एक-से-अनेक संबंध होगा क्योंकि प्रत्येक छात्र के पास केवल एक शिक्षक होता है, लेकिन प्रत्येक शिक्षक के पास कई छात्र होते हैं।यह एक-से-अनेक डिज़ाइन डुप्लिकेट डेटा को समाप्त करने में मदद करता है।
- अनेक-से-अनेक संबंध तब होते हैं जब तालिका A में प्रत्येक रिकॉर्ड तालिका B में एक या अधिक रिकॉर्ड से मेल खाता है, और तालिका B में प्रत्येक रिकॉर्ड एक या अधिक रिकॉर्ड से मेल खाता है तालिका ए में। उदाहरण के लिए, शिक्षक तालिका और पाठ्यक्रम तालिका के बीच संबंध कई-से-अनेक होंगे क्योंकि प्रत्येक शिक्षक एक से अधिक पाठ्यक्रम निर्देश दे सकता है, और प्रत्येक पाठ्यक्रम में एक से अधिक प्रशिक्षक हो सकते हैं।
नीचे की रेखा
स्व-संदर्भ संबंध तब होते हैं जब केवल एक तालिका शामिल होती है। एक सामान्य उदाहरण एक कर्मचारी तालिका है जिसमें प्रत्येक कर्मचारी के पर्यवेक्षक के बारे में जानकारी होती है। प्रत्येक पर्यवेक्षक भी एक कर्मचारी है और एक पर्यवेक्षक है। इस मामले में, एक-से-अनेक आत्म-संदर्भ संबंध है, क्योंकि प्रत्येक कर्मचारी के पास एक पर्यवेक्षक होता है, लेकिन प्रत्येक पर्यवेक्षक के पास एक से अधिक कर्मचारी हो सकते हैं।
विदेशी कुंजी के साथ संबंध बनाना
आप एक विदेशी कुंजी निर्दिष्ट करके तालिकाओं के बीच संबंध बनाते हैं। यह कुंजी रिलेशनल डेटाबेस को बताती है कि टेबल कैसे संबंधित हैं। कई मामलों में, तालिका A के एक स्तंभ में प्राथमिक कुंजियाँ होती हैं जिन्हें तालिका B से संदर्भित किया जाता है।
अध्यापक और छात्र तालिकाओं के उदाहरण पर विचार करें। शिक्षक तालिका में एक आईडी, एक नाम और एक पाठ्यक्रम कॉलम होता है:
इंस्ट्रक्टरआईडी | शिक्षक_नाम | पाठ्यक्रम |
001 | जॉन डो | अंग्रेज़ी |
002 | जेन शमो | गणित |
छात्र तालिका में एक आईडी, नाम और एक विदेशी कुंजी कॉलम शामिल है:
छात्र आईडी | छात्र_नाम | शिक्षक_एफके |
0200 | लोवेल स्मिथ | 001 |
0201 | ब्रायन शॉर्ट | 001 |
0202 | कॉर्की मेंडेज़ | 002 |
0203 | मोनिका जोन्स | 001 |
छात्र तालिका में Teacher_FK कॉलम शिक्षक तालिका में एक प्रशिक्षक के प्राथमिक कुंजी मान का संदर्भ देता है। अक्सर, डेटाबेस डिज़ाइनर प्राथमिक कुंजी या विदेशी कुंजी कॉलम की पहचान करने के लिए कॉलम नाम में PK या FK का उपयोग करते हैं।
ये दो सारणियां शिक्षकों और छात्रों के बीच एक-से-अनेक संबंधों को दर्शाती हैं।
रिश्ते और संदर्भात्मक सत्यनिष्ठा
तालिका में विदेशी कुंजी जोड़ने के बाद, एक डेटाबेस बाधा बनाएं जो दो तालिकाओं के बीच संदर्भात्मक अखंडता को लागू करे। यह कदम सुनिश्चित करता है कि तालिकाओं के बीच संबंध सुसंगत रहें। जब एक टेबल में दूसरी टेबल की फॉरेन की होती है, तो रेफरेंशियल इंटिग्रिटी के लिए जरूरी है कि टेबल बी में कोई भी फॉरेन की वैल्यू टेबल ए में मौजूदा रिकॉर्ड को संदर्भित करे।
रिश्ते निभाना
आपके डेटाबेस के आधार पर, आप अलग-अलग तरीकों से तालिकाओं के बीच संबंधों को लागू करेंगे। Microsoft Access एक विज़ार्ड प्रदान करता है जो आपको तालिकाओं को लिंक करने और संदर्भात्मक अखंडता को लागू करने की अनुमति देता है।
यदि आप सीधे SQL लिख रहे हैं, तो पहले तालिका बनाएं शिक्षक, एक आईडी कॉलम को प्राथमिक कुंजी घोषित करते हुए:
टेबल शिक्षक बनाएं (प्रशिक्षक आईडी INT AUTO_INCREMENT प्राथमिक कुंजी, Teacher_Name VARCHAR(100), Course VARCHAR(100));
जब आप छात्र तालिका बनाते हैं, तो आप शिक्षक_एफके कॉलम को शिक्षक तालिका में इंस्ट्रक्टरआईडी कॉलम के संदर्भ में एक विदेशी कुंजी घोषित करते हैं:
छात्र तालिका बनाएं (छात्र आईडी INT AUTO_INCREMENT प्राथमिक कुंजी, छात्र_नाम VARCHAR(100), Teacher_FK INT, विदेशी कुंजी (Teacher_FK) संदर्भ शिक्षक (प्रशिक्षक)));
तालिकाओं में शामिल होने के लिए संबंधों का उपयोग करना
अपने डेटाबेस में एक या अधिक संबंध बनाने के बाद, कई तालिकाओं से जानकारी को संयोजित करने के लिए SQL JOIN क्वेरी का उपयोग करके उनकी शक्ति का लाभ उठाएं। शामिल होने का सबसे सामान्य प्रकार SQL INNER JOIN है, जो एक साधारण जुड़ाव है। इस प्रकार का जुड़ाव एक या अधिक तालिकाओं से जुड़ने की स्थिति को पूरा करने वाले सभी रिकॉर्ड लौटाता है।
उदाहरण के लिए, यह जॉइन शर्त छात्र_नाम, शिक्षक_नाम, और पाठ्यक्रम लौटाती है, जहां छात्र तालिका में विदेशी कुंजी शिक्षक तालिका में प्राथमिक कुंजी से मेल खाती है:
छात्रों का चयन करें।Student_Name, Teachers. Teacher_Name, Teachers. Course
छात्रों से
INNER JOIN Teacherछात्रों पर।Teacher_FK=Teachers. InstructorID;
यह स्टेटमेंट कुछ इस तरह से एक टेबल तैयार करता है:
छात्र_नाम | शिक्षक_नाम | पाठ्यक्रम |
लोवेल स्मिथ | जॉन डो | अंग्रेज़ी |
ब्रायन शॉर्ट | जॉन डो | अंग्रेज़ी |
कॉर्की मेंडेज़ | जेन शमो | गणित |
मोनिका जोन्स | जॉन डो | अंग्रेज़ी |