उदाहरणों सहित डेटाबेस प्रबंधन प्रणाली में संबंधपरक बीजगणित

⚡ स्मार्ट सारांश

डेटाबेस मैनेजमेंट सिस्टम (DBMS) में रिलेशनल अलजेब्रा एक प्रक्रियात्मक क्वेरी भाषा है जो रिलेशंस को इनपुट के रूप में लेती है और नए रिलेशंस को आउटपुट के रूप में उत्पन्न करती है। यह ऑपरेटर्स को यूनरी, सेट और बाइनरी श्रेणियों में समूहित करती है, जो सैद्धांतिक आधार प्रदान करती है जिसे SQL इंजन निष्पादन योग्य क्वेरी प्लान में अनुवादित करते हैं।

  • 🔍 यूनरी ऑपरेटरों से शुरू करें: SELECT, PROJECT और RENAME का उपयोग करके एक ही रिलेशन पर पंक्तियों को फ़िल्टर करें, कॉलम चुनें और एट्रिब्यूट का नाम बदलें।
  • 📚 सेट सिद्धांत लागू करें: यूनियन, इंटरसेक्शन, डिफरेंस और कार्टेशियन प्रोडक्ट, यूनियन-संगत संबंधों को मिलाकर नए परिणाम उत्पन्न करते हैं।
  • 🔗 सोच-समझकर शामिल हों: थीटा, इक्वी और नेचुरल जॉइन आंतरिक मिलान को संभालते हैं, जबकि लेफ्ट, राइट और फुल आउटर जॉइन शून्य मानों के साथ बेमेल टुपल्स को रखते हैं।
  • 📐 घड़ी की अनुकूलता: किसी भी सेट या यूनियन ऑपरेशन से पहले हमेशा यह सुनिश्चित करें कि एरीटी, एट्रीब्यूट नाम और डोमेन मेल खाते हों।
  • 🤖 अनुवाद के लिए एआई का उपयोग करें: एआई सहायक बीजगणितीय अभिव्यक्तियों को एसक्यूएल में परिवर्तित करते हैं, ऑपरेटर की प्राथमिकता की व्याख्या करते हैं, और सरल अंग्रेजी में गुम हुई जॉइन शर्तों को चिह्नित करते हैं।

डीबीएमएस में संबंधपरक बीजगणित

संबंधपरक बीजगणित क्या है?

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

बुनियादी संबंधपरक बीजगणित Operaमाहौल

संबंधपरक बीजगणित ऑपरेटरों को तीन समूहों में बांटा जा सकता है।

एकल संबंधपरक Operaमाहौल

  • चयन करें (σ)
  • परियोजना (π)
  • नाम बदलें (ρ)

Operaसेट सिद्धांत से उद्धरण

  • संघ (∪)
  • प्रतिच्छेदन (∩)
  • अंतर (−)
  • कार्टेशियन गुणनफल (×)

बाइनरी रिलेशनल Operaमाहौल

  • शामिल हों
  • विभाजन

नीचे दिए गए अनुभागों में उदाहरणों सहित प्रत्येक ऑपरेटर के बारे में विस्तार से बताया गया है।

चयन करें (σ)

RSI चुनते हैं यह ऑपरेशन टुपल्स के एक उपसमुच्चय का चयन करता है जो दिए गए प्रेडिकेट को संतुष्ट करते हैं। सिग्मा प्रतीक σ यह दर्शाता है:

σp(r)

जहां σ ऑपरेटर है, p यह प्रस्तावनात्मक शर्त है, और r यह रिलेशन (टेबल) है। SELECT स्कीमा को संरक्षित रखता है और उन पंक्तियों को हटा देता है जो प्रेडिकेट में विफल होती हैं।

उदाहरण 1

σ topic = "Database" (Tutorials)

टुपल्स का चयन करता है ट्यूटोरियल जहां विषय का अर्थ "डेटाबेस" है।

उदाहरण 2

σ topic = "Database" AND author = "guru99" (Tutorials)

टुपल्स का चयन करता है ट्यूटोरियल जहां विषय "डेटाबेस" है और लेखक गुरु99 हैं।

उदाहरण 3

σ sales > 50000 (Customers)

टुपल्स का चयन करता है ग्राहक जिनका विक्रय मूल्य 50,000 से अधिक है।

प्रक्षेपण (π)

RSI प्रक्षेपण ऑपरेटर इनपुट रिलेशन से सूचीबद्ध विशेषताओं को छोड़कर बाकी सभी विशेषताओं को हटा देता है, जिससे एक वर्टिकल सबसेट बनता है। प्रोजेक्शन ड्रॉप के परिणामस्वरूप उत्पन्न होने वाली डुप्लिकेट पंक्तियों को भी हटा देता है।ping विशेषताएँ। पाई प्रतीक π इसका संकेत देता है।

उदाहरण: निम्नलिखित तालिका पर विचार करें।

ग्राहक आईडी ग्राहक का नाम स्थिति
1 गूगल सक्रिय
2 Amazon सक्रिय
3 Apple निष्क्रिय
4 अलीबाबा सक्रिय

ग्राहक के नाम और स्थिति के आधार पर अनुमान लगाना:

π CustomerName, Status (Customers)
ग्राहक का नाम स्थिति
गूगल सक्रिय
Amazon सक्रिय
Apple निष्क्रिय
अलीबाबा सक्रिय

नाम बदलें (ρ)

RSI नाम बदलने ऑपरेटर एक एकल संक्रिया है जो किसी विशेषता (या संपूर्ण संबंध) को नया नाम देती है। उदाहरण के लिए, ρ(a/b) R विशेषता का नाम बदलता है b संबंध का R सेवा मेरे a. नाम बदलना विशेष रूप से तब उपयोगी होता है जब आपको सेल्फ-जॉइन करने की आवश्यकता होती है या दो संबंधों को जोड़ने की आवश्यकता होती है जो एट्रिब्यूट नामों को साझा करते हैं।

संघ Operation (∪)

RSI संघ ऑपरेटर, जिसे द्वारा दर्शाया जाता है यह फ़ंक्शन रिलेशन A या रिलेशन B में मौजूद हर टपल को लौटाता है, और डुप्लिकेट को अपने आप हटा देता है।

Result ← A ∪ B

किसी संघ के वैध होने के लिए:

  • A और B में विशेषताओं की संख्या समान होनी चाहिए (समान एरीटी)।
  • संबंधित विशेषता डोमेन संगत होने चाहिए।
  • डुप्लिकेट टुपल्स स्वचालित रूप से हटा दिए जाते हैं।

उदाहरण। इन दो तालिकाओं पर विचार करें:

टेबल ए टेबल बी
स्तंभ 1 स्तंभ 2 स्तंभ 1 स्तंभ 2
1 1 1 1
1 2 1 3

A ∪ B देता है:

स्तंभ 1 स्तंभ 2
1 1
1 2
1 3

सेट अंतर (−)

माइनस चिह्न दर्शाता है अंतर निर्धारित करेंपरिणाम स्वरूप A − B यह एक ऐसा संबंध है जिसमें वे सभी टपल शामिल हैं जो A में तो हैं लेकिन B में नहीं हैं।

  • A और B संघ-संगत होने चाहिए।
  • एट्रिब्यूट के नाम और डोमेन मेल खाने चाहिए।

उदाहरण: A − B

स्तंभ 1 स्तंभ 2
1 2

प्रतिच्छेदन (∩)

RSI प्रतिच्छेदन ऑपरेटर, जिसे द्वारा दर्शाया जाता है यह एक ऐसा संबंध परिभाषित करता है जिसमें A और B दोनों में प्रकट होने वाले प्रत्येक टपल शामिल होते हैं। A और B संघ-संगत होने चाहिए।

चौराहे की दृश्य परिभाषा

चौराहे की दृश्य परिभाषा।

उदाहरण: A ∩ B

स्तंभ 1 स्तंभ 2
1 1

डीबीएमएस में कार्टेशियन उत्पाद (×)

RSI कार्तीय गुणन यह एक रिलेशन के सभी टपल को दूसरे रिलेशन के सभी टपल के साथ जोड़ता है, उनके कॉलम को मर्ज करता है। अकेले इसका परिणाम शायद ही कभी उपयोगी होता है, लेकिन SELECT प्रेडिकेट के साथ मिलकर यह JOIN का आधार बन जाता है। इसे क्रॉस प्रोडक्ट या क्रॉस जॉइन भी कहा जाता है।

उदाहरण: σ स्तंभ 2 = '1' (A × B)

यह अभिव्यक्ति प्रत्येक पंक्ति को लौटाती है A × B किसका column 2 मान 1 है।

स्तंभ 1 स्तंभ 2
1 1
1 1

जुडें Operaमाहौल

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

जॉइन के प्रकार:

  • आंतरिक जोड़: थीटा जॉइन, इक्वी जॉइन, नेचुरल जॉइन।
  • बाहरी जोड़: बाएँ, दाएँ और पूर्ण बाहरी जोड़।

आंतरिक रूप से जुड़ा

एक में आंतरिक रूप से जुड़ाकेवल मिलान मानदंडों को पूरा करने वाले टुपल्स को ही शामिल किया जाता है; बाकी को हटा दिया जाता है।

थीटा जॉइन

JOIN का सामान्य रूप यह है: थीटा जॉइनजिसे θ से दर्शाया जाता है। थीटा जॉइन अपने चयन मानदंड में किसी भी तुलना शर्त का उपयोग कर सकता है।

A ⋈θ B

उदाहरण के लिए:

A ⋈ A.column 2 > B.column 2 (B)
स्तंभ 1 स्तंभ 2
1 2

इक्वी जॉइन

जब थीटा जॉइन केवल समानता शर्तों का उपयोग करता है, तो यह एक बन जाता है इक्वी जॉइन.

A ⋈ A.column 2 = B.column 2 (B)
स्तंभ 1 स्तंभ 2
1 1

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

प्राकृतिक जोड़ (⋈)

A प्राकृतिक जुड़ाव इसके लिए संबंधों के बीच एक समान विशेषता (स्तंभ) की आवश्यकता होती है। साझा विशेषता का नाम और डोमेन समान होना चाहिए। परिणाम में मिलान वाले स्तंभ की एक प्रति होती है।

इन दो तालिकाओं पर विचार करें।

टेबल सी
में चौकोर
2 4
3 9
टेबल डी
में घन
2 8
3 27

C ⋈ D पैदा करता है:

में चौकोर घन
2 4 8
3 9 27

बाहरी सम्मिलित हों

An बाहरी जुड़ाव मिलान मानदंडों को पूरा करने वाले टुपल्स को रखता है और उन टुपल्स में जो ऐसा नहीं करते, उनमें छूटे हुए कॉलम को NULL से भर दिया जाता है।

बायाँ बाहरी जोड़ (A ⟕ B)

लेफ्ट आउटर जॉइन लेफ्ट रिलेशन में मौजूद हर टपल को बरकरार रखता है। यदि A में मौजूद किसी पंक्ति का B में कोई मेल नहीं खाता है, तो B द्वारा योगदान किए गए एट्रिब्यूट्स को NULL से भर दिया जाता है।

बाईं ओर का बाहरी जोड़

निम्नलिखित तालिकाओं पर विचार करें:

टेबल ए
में चौकोर
2 4
3 9
4 16
टेबल बी
में घन
2 8
3 18
5 75

A ⟕ B देता है:

में चौकोर घन
2 4 8
3 9 18
4 16 नल

दायां बाह्य जोड़ (A ⟖ B)

राइट आउटर जॉइन दाएं रिलेशन में मौजूद हर टपल को बरकरार रखता है। यदि B में मौजूद किसी पंक्ति का A में कोई मेल नहीं खाता है, तो A द्वारा योगदान किए गए कॉलम NULL से भर दिए जाते हैं।

राइट आउटर जॉइन करें

A ⟖ B देता है:

में घन चौकोर
2 8 4
3 18 9
5 75 नल

पूर्ण बाह्य जोड़ (A ⟗ B)

फुल आउटर जॉइन दोनों रिलेशंस के हर टपल को रखता है, चाहे जॉइन कंडीशन मैच हुई हो या नहीं। दोनों तरफ के मिसिंग वैल्यू NULL हो जाते हैं।

A ⟗ B देता है:

में चौकोर घन
2 4 8
3 9 18
4 16 नल
5 नल 75

Operaटोर संदर्भ सारांश

प्रत्येक ऑपरेटर क्या करता है, इसे एक नजर में याद रखने के लिए इस संदर्भ तालिका का उपयोग करें।

Operaप्रतीक (प्रतीक) उद्देश्य
चयन करें (σ) यह फ़ंक्शन टुपल्स के एक उपसमूह का चयन करता है जो दिए गए प्रेडिकेट को संतुष्ट करता है।
परियोजना (π) यह केवल सूचीबद्ध विशेषताओं को ही रखता है और डुप्लिकेट पंक्तियों को हटा देता है।
संघ (∪) यह A या B में मौजूद सभी टपल को बिना डुप्लिकेट के लौटाता है।
सेट अंतर (−) यह A में मौजूद उन टुपल्स को लौटाता है जो B में मौजूद नहीं हैं।
प्रतिच्छेदन (∩) यह A और B दोनों में मौजूद टुपल्स को लौटाता है।
कार्टेशियन गुणनफल (×) A के प्रत्येक टपल को B के प्रत्येक टपल के साथ जोड़ता है।
अंदरूनी शामिल हों यह केवल उन्हीं टुपल्स को रखता है जो जॉइन कंडीशन से मेल खाते हैं।
थीटा जॉइन (θ) किसी भी तुलना विधेय का उपयोग करके सामान्य-रूप का संयोजन।
इक्वी जॉइन थीटा जॉइन जो केवल समानता तुलनाओं का उपयोग करता है।
प्राकृतिक जोड़ (⋈) यह उन संबंधों को जोड़ता है जिनमें समान नाम और डोमेन वाले एट्रिब्यूट होते हैं।
बाएँ बाहरी जोड़ (⟕) यह लेफ्ट रिलेशन से सभी टपल को रखता है और राइट रिलेशन को NULL से भर देता है।
दायां बाहरी जोड़ (⟖) यह दाईं ओर के रिलेशन से सभी टपल को रखता है और बाईं ओर को NULL से भर देता है।
पूर्ण बाहरी जोड़ (⟗) दोनों संबंधों से प्रत्येक टपल को रखता है, और लुप्त मानों को NULL से भरता है।

अक्सर पूछे जाने वाले प्रश्न

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

दो संबंध संघ संगत होते हैं जब उनमें विशेषताओं की संख्या समान हो और प्रत्येक संबंधित विशेषता का डोमेन समान हो। संघ, प्रतिच्छेदन और अंतर, तीनों संबंधों के लिए संघ संगतता आवश्यक है।

कार्टेशियन गुणनफल A की प्रत्येक पंक्ति को B की प्रत्येक पंक्ति से गुणा करता है, जिससे निरर्थक और विशाल मध्यवर्ती संबंध उत्पन्न होते हैं। आमतौर पर, उपयोगी जॉइन बनाने के लिए इसके बाद SELECT प्रेडिकेट का प्रयोग किया जाता है।

नहीं। शुद्ध संबंधपरक बीजगणित संबंधों को समुच्चय के रूप में मानता है, इसलिए प्रत्येक संक्रिया के बाद डुप्लिकेट स्वतः ही हट जाते हैं। SQL का व्यवहार भिन्न है - यह बहुसमुच्चयों पर कार्य करता है और केवल DISTINCT का उपयोग करने पर ही डुप्लिकेट हटाता है।

DIVISION ऑपरेटर "सभी के लिए" प्रश्नों का उत्तर देता है — उदाहरण के लिए, उन ग्राहकों को ढूंढें जिन्होंने कैटलॉग में मौजूद सभी उत्पादों का ऑर्डर दिया है। यह एक रिलेशन के उन सभी टपल्स को लौटाता है जो दूसरे रिलेशन के सभी टपल्स से मेल खाते हैं।

आउटर जॉइन का उपयोग तब करें जब बेमेल पंक्तियों का भी महत्व हो — उदाहरण के लिए, प्रत्येक ग्राहक को वैकल्पिक ऑर्डर डेटा के साथ सूचीबद्ध करना। इनर जॉइन उन बेमेल पंक्तियों को हटा देता है; आउटर जॉइन उन्हें NULL मानों के साथ रखता है।

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

जी हां। एआई उपकरण सरल अंग्रेजी प्रश्नों जैसे "भारत के वे ग्राहक जिन्होंने हर उत्पाद खरीदा" को SELECT, PROJECT और DIVISION ऑपरेटरों के साथ बीजगणित वृक्षों में बदल देते हैं, और फिर उन्हें चलाने योग्य SQL में परिवर्तित कर देते हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: