2011-01-23 20 views
13

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

+0

शायद आप डिवीजन ऑपरेटर Rel1 ÷ Rel1 का उपयोग कर सकते हैं! –

उत्तर

31

रिलेशनल अनुमान हमेशा अलग टुपल्स लौटते हैं ताकि DISTINCT की आवश्यकता न हो। आरए में डुप्लिकेट टुपल्स की अनुमति नहीं है - यह संबंध मॉडल और एसक्यूएल मॉडल के बीच एक बड़ा अंतर है।

+0

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे ऑब्जेक्ट करना है, रिलेशनल बीजगणित में ऑपरेटर की तरह एक अलग है, यूल्मन्स डाटाबेस सिस्टम के मेरे संस्करण में पूर्ण पुस्तक यह निम्नलिखित अध्याय में है: 5.2.1 डुप्लिकेट एलिमिनेशन "। हां, निश्चित रूप से, सामान्य सेट में डुप्लीकेट की अनुमति नहीं है, लेकिन मल्टीसेट्स हैं, जो उन्हें अनुमति देते हैं। –

+3

हाय डीडीविद, मुझे लगता है कि आप मोलिना, उलमैन, Widom (जिस तरह से उत्कृष्ट पुस्तक और एक बार मैं अक्सर बनाया गया बिंदु) देखें)। सेक्शन 5.2 से उद्धरण: "जब डीबीएमएस ने रिलेशनल मॉडल का इस्तेमाल किया था, तो पहली बार उनकी क्वेरी भाषाएं रिलेशनल बीजगणित को लागू करती थीं। हालांकि ... इन प्रणालियों ने संबंधों को * बैग * के रूप में माना, सेट नहीं किया। "(मेरा जोर) वे यह इंगित करते हैं कि आरए द्वारा समर्थित सेट ऑपरेशंस के लिए बैग ऑपरेशन अलग हैं। एसक्यूएल के डिस्टिंट" ऑपरेटर "में एक ट्यूपल बैग और डुप्लिकेट को हटा देता है। आरए विशेष रूप से टुपल्स के सेट के साथ सौदा करता है। – sqlvogel

3

रिलेशनल बीजगणित सेट सिद्धांत पर आधारित है। एसक्यूएल बहु-सेट सिद्धांत का कार्यान्वयन है। सेट हमेशा अलग तत्व है। तो रिलेशनल बीजगणित में डिफ़ॉल्ट रूप से tuples अलग हैं।

संबंधित मुद्दे