संबंधपरक मॉडल के साथ काम करते समय, हमारे पास संचालन के 2 समूह होते हैं जिनका हम उपयोग कर सकते हैं।
पहले को संबंधपरक बीजगणित . कहा जाता है , और यह एक प्रक्रियात्मक भाषा . है ।
SQL इसी पर आधारित है, और इसलिए इसे सीखना बहुत महत्वपूर्ण है - क्योंकि SQL रिलेशनल डेटाबेस के साथ काम करने के लिए वास्तविक मानक है।
दूसरे को रिलेशनल कैलकुलस . कहा जाता है और प्रक्रियात्मक होने के बजाय, यह एक घोषणात्मक भाषा . है . हम डेटाबेस के साथ कैसे इंटरैक्ट करते हैं, यह एक मूलभूत अंतर है, क्योंकि आप डेटाबेस सॉफ़्टवेयर को यह नहीं बताते हैं क्या करना है , आप बस इसे बताएं आप क्या चाहते हैं , और इसे कैसे करना है इसके विवरण को हल करने दें।
<ब्लॉकक्वॉट>प्रोग्रामिंग भाषाओं के बीच यह एक सामान्य अंतर है। आधुनिक दृश्यपटल में, हम कहते हैं कि प्रतिक्रिया में DOM के साथ बातचीत घोषणात्मक है। DOM को संशोधित करने के लिए वैनिला जावास्क्रिप्ट का उपयोग करना प्रक्रियात्मक है।
Datalog, QBE और QUEL जैसी भाषाओं में इसके आधार के रूप में रिलेशनल कैलकुलस होता है। मैं इस बारे में बात नहीं करने जा रहा हूं क्योंकि मुझे लगता है कि एसक्यूएल के बाद अधिक व्यावहारिक दृष्टिकोण की तुलना में यह चीजों को करने का एक अधिक विशिष्ट तरीका है, लेकिन आप चाहें तो इसे देख सकते हैं।
इस परिचय को देखते हुए, चलिए संबंधपरक बीजगणित . के साथ चलते हैं ।
हमारे पास 2 प्रकार के ऑपरेशन हैं:
- प्राथमिक संचालन
- ऑपरेशन में शामिल हों
संबंधपरक बीजगणित में प्राथमिक संचालन
प्राथमिक संचालन हैं:
- संघ दो तालिकाओं से डेटा प्राप्त करने के लिए, टुपल्स का योग उत्पन्न करना, जब तक कि दो तालिकाओं में समान कॉलम और विशेषता प्रकार (डोमेन) हों।
- अंतर पहली तालिका में निहित डेटा प्राप्त करने के लिए, लेकिन दूसरी तालिका में नहीं, टुपल्स के अंतर को उत्पन्न करने के लिए, जब तक कि दो तालिकाओं में समान कॉलम और विशेषता प्रकार (डोमेन) हों।
- कार्टेशियन उत्पाद दो तालिकाओं से डेटा प्राप्त करने के लिए और एक एकल तालिका उत्पन्न करने के लिए जो एक विशेषता मान के आधार पर उनके डेटा को जोड़ती है।
- चुनें केवल कुछ मानदंडों के आधार पर तालिका में निहित कुछ टुपल्स (पंक्तियों) को निकालने के लिए।
- प्रोजेक्ट मौजूदा तालिका के केवल एक या अधिक विशेषताओं (कॉलम) वाली एक नई तालिका उत्पन्न करने के लिए
- नाम बदलें एक विशेषता का नाम बदलने के लिए उपयोग किया जाता है, जिसका उपयोग विरोधों को रोकने के लिए किया जाता है जब कई तालिकाओं का अलग-अलग डेटा के लिए एक ही नाम होता है
संबंधपरक बीजगणित में संक्रियाओं में शामिल हों
जॉइन शायद सबसे शक्तिशाली ऑपरेशन हैं जो आप रिलेशनल बीजगणित के साथ कर सकते हैं। वे प्राथमिक संचालन के शीर्ष पर निर्माण करते हैं, और वे आपको विभिन्न संबंधों (तालिकाओं) में निहित डेटा को सहसंबंधित करने की अनुमति देते हैं।
<ब्लॉकक्वॉट>नोट:मैं जल्द ही DBMS में अभ्यास में शामिल होने के बारे में बात करूंगा, यह ज्यादातर सिद्धांत है।
हमारे पास शामिल होने के 2 मुख्य संस्करण हैं:प्राकृतिक जुड़ाव और थीटा शामिल हों . अन्य सभी संस्करण उन 2 से निकाले गए हैं।
प्राकृतिक जुड़ाव
प्राकृतिक जुड़ाव दो संबंधों (तालिकाओं) को सहसंबंधित करता है, और एक विशेषता के समान मूल्यों के आधार पर एक नई तालिका बनाता है।
हमें पहले एक ही विशेषता नाम (कॉलम) के साथ दो संबंधों की आवश्यकता है। फिर यदि संबंध ए में विशेषताओं में मान संबंध बी में विशेषताओं में बेजोड़ हैं, तो पंक्ति परिणाम का हिस्सा नहीं है, इसे अनदेखा किया जाता है।
उदाहरण:
संबंध ए
कर्मचारी आईडी | <थ>नाम|
---|---|
1 | चिह्नित करें |
2 | टोनी |
3 | रिक |
संबंध बी
प्रबंधक का नाम | कर्मचारी आईडी |
---|---|
टोड | 1 |
अल्बर्ट | 2 |
हम प्रत्येक कर्मचारी के लिए बॉस का नाम प्राप्त करने के लिए स्वाभाविक रूप से शामिल हो सकते हैं:
कर्मचारी आईडी | <थ>नामप्रबंधक का नाम | |
---|---|---|
1 | चिह्नित करें | टोड |
2 | टोनी | अल्बर्ट |
चूंकि संबंधों में कर्मचारी आईडी विशेषता नाम समान है, यह परिणाम में केवल एक बार उपस्थित होता है, 2 बार नहीं।
ए, रिक के संबंध में मौजूद कर्मचारी #3 इस तालिका में शामिल नहीं है, क्योंकि संबंध बी में कोई संबंधित प्रविष्टि नहीं है।
थीटा-जॉइन
थीटा-जॉइन दो अलग-अलग संबंधों में दो कॉलम की तुलना करने के लिए किसी भी मानदंड के आधार पर एक जॉइन करने की अनुमति देता है, न कि केवल प्राकृतिक जॉइन की तरह समानता।
यह दो तालिकाओं का कार्टेशियन उत्पाद करता है, और उस चयन के आधार पर परिणामों को फ़िल्टर करता है जिसे हम बनाना चाहते हैं।
Equi-join
इक्वि-जॉइन एक थीटा जॉइन है, जहां चयन दो अलग-अलग तालिकाओं में विशेषता मानों के बीच समानता पर आधारित होता है।
प्राकृतिक जुड़ाव के साथ अंतर यह है कि हम चुन सकते हैं कि हम किन विशेषताओं के नाम (कॉलम) की तुलना करना चाहते हैं।
जब SQL पेश किया जाएगा तो हम बाद में जुड़ने के बारे में और बात करेंगे, ताकि हम उन्हें व्यवहार में उपयोग कर सकें।