डेटाबेस संबंधों का परिचय

डेटाबेस शब्द "रिलेशनल" या "रिलेशनशिप" इस तरीके का वर्णन करता है कि तालिकाओं में डेटा जुड़े हुए हैं।

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

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

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

तीन अलग-अलग प्रकार के डेटाबेस रिश्ते हैं, प्रत्येक का नाम तालिका पंक्तियों की संख्या के अनुसार है जो संबंधों में शामिल हो सकते हैं। इन तीनों रिलेशनशिप प्रकारों में से प्रत्येक दो टेबल के बीच मौजूद है।

आत्म-संदर्भ संबंध: एक विशेष मामला

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

विदेशी कुंजी के साथ संबंध बनाना

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

शिक्षकों और छात्र तालिकाओं का उदाहरण फिर से विचार करें। शिक्षक तालिका में केवल एक आईडी, एक नाम, और एक कोर्स कॉलम होता है:

शिक्षकों की
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