शब्द "प्रक्षेपण" एक SQL क्वेरी (या दृश्य परिभाषा) में संदर्भित करता है


15

ओरेकल के दस्तावेज़ द क्वेरी ऑप्टिमाइज़र में , व्यू मर्जिंग के तहत , मुझे निम्नलिखित जानकारी मिली

व्यू मर्जिंग ऑप्टिमाइज़ेशन उन विचारों पर लागू होता है जिनमें केवल चयन, अनुमान और जुड़ाव होते हैं। यही है, विलय के विचारों में सेट ऑपरेटर, कुल कार्य, DISTINCT, GROUP BY, CONNECT BY, और इतने पर नहीं होते हैं। (जोर मेरा)

फिर भी, मैं केवल अनुमान लगा सकता हूं कि इस तरह के प्रक्षेपण वास्तव में क्या दर्शाता है।

जवाबों:


17

रिलेशनल बीजगणित में, प्रक्षेपण का मतलब है कि संचालन में उपयोग के लिए स्तंभों का एक सबसेट इकट्ठा करना, अर्थात एक प्रक्षेपण चयनित स्तंभों की सूची है।

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

एक दृश्य में, एक प्रक्षेपण दृश्य में अंतर्निहित क्वेरी में चयनित स्तंभों की सूची के बराबर होता है।


13

प्रोजेक्शन से तात्पर्य एक तालिका में पाए गए सभी स्तंभों के सेट के उस सबसेट से है, जिसे आप वापस करना चाहते हैं। यह 0 से लेकर पूर्ण सेट तक कहीं भी हो सकता है।

एक तालिका में दो "सेट" होते हैं जो तालिका के दो आयामों के अनुरूप होते हैं। प्रत्येक तालिका में स्तंभों के साथ-साथ पंक्तियों का एक सेट होता है । तालिका में प्रत्येक व्यक्ति का मान इन दो * सेट ** के एक विशिष्ट चौराहे पर पाया जा सकता है । हालाँकि, आपका मान किसी पते पर " T60 ", जैसे कि आप एक्सेल के साथ "जा रहा है" से नहीं पाया जाता है ।

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

एक बार जब आप कॉलम को अपना मान चुन लेते हैं, तो आपको उस विशेष पंक्ति को चुनना होगा, जिसमें पंक्तियाँ नहीं हैं, जिस तरह से स्तंभों के नाम हैं। जिस तरह से हम एक पंक्ति निर्दिष्ट करते हैं। । । ठीक है, हम ठीक नहीं है। । । हम कुछ ऐसा निर्दिष्ट करते हैं जिसे हम उस मूल्य के बारे में जानते हैं जिसे हम खोज रहे हैं। आपको उस मूल्य से संबंधित (शाब्दिक) कुछ जानना होगा, जिसकी आप तलाश कर रहे हैं। यदि आप पर्याप्त संबंधित जानकारी निर्दिष्ट कर सकते हैं तो आप अपने द्वारा देखी जा रही रिटर्न की पंक्तियों को कम कर सकते हैं।

इसे ऐसे समझें कि जैसे किसी कॉलेज की छात्रा ने अपना बैग खो दिया हो। मान लीजिए कि एक आदमी ने इसे खो दिया। उन्होंने कहा कि खो दिया है और पाया, और उपस्थित महिला का कहना है "हाँ, हमारे पास एक दर्जन बैकपैक्स हैं। क्या आप इसका वर्णन कर सकते हैं?" आप कहते हैं "ठीक है, यह नीला है?"। जिस पर वह जवाब देती है "क्या आप मुझसे पूछ रहे हैं या मुझे बता रहे हैं", और फिर कहती है "मेरे पास आठ नीले हैं, इससे बेहतर काम करना है, और आपने उस बारे में बहुत ज्यादा यकीन नहीं किया है।" आप कहते हैं "चलो देखते हैं, उम्म, ओह हाँ! यह मेरी गणित 1010 पुस्तक थी।" "अच्छा, अब तुम चार से नीचे हो।" फिर आपको याद है कि आप अपनी प्रेमिका, लुसी से 15 मिनट में मिलने वाले हैं, और इससे एक और स्मृति पैदा हो गई है - उस समय जब आप 1010 गणित में ऊब गए थे और लिखा था, - बैकपैक के तल पर वास्तविक छोटे अक्षरों में, "मैं" प्यार लुसी ”।रिकी । "

प्रोजेक्शन की तुलना यह कहने में हो सकती है कि आपने क्या खोया है - एक बैकपैक। इसकी विशेषताओं का वर्णन करने के लिए चयन की तुलना की जा सकती है : यह नीला है, अंदर एक गणित 1010 पुस्तक है, और नीचे "आई लव लूसी" लिखा है।

आप SQL के साथ एक ही काम करते हैं। पहला, आप किस तरह की जानकारी देखना चाहते हैं। दूसरा, ऐसा मानदंड जो आप देखना चाहते हैं। इन्हें विधेय या सत्य कथन कहते हैं । वे सेट के एक या अधिक सदस्यों के लिए सही हैं। यदि वे नहीं हैं, तो वे कोई भी मान नहीं लौटाते हैं।

* कुछ विक्रेताओं के एसक्यूएल कार्यान्वयन इन नियमों को तोड़ने का साधन प्रदान करते हैं, जैसे कि Oracle में नेस्टेड टेबल। हालांकि, मानक दो आयामी टेबल अभी भी पूर्वनिर्मित रूप हैं।

** CJ Date ने एक बहुत ही दिलचस्प लेख लिखा जिसका नाम है "A Table With No Columns"। मुझे यह पढ़ने में बहुत अच्छा लगा, क्योंकि मैं उनके कई "लेखन" लेखों में से अधिकांश करता हूं। मैं उन्हें बहुत सलाह देता हूं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.