2008-11-06 19 views
6

आपके अनुभव में, पेशेवर प्रक्रियात्मक कोडर को पेशेवर एसक्यूएल कोडर बनने में कितना समय लगता है? और संक्रमण करने का सबसे अच्छा तरीका क्या है? (डेटाबेस डिजाइन कौशल को अपमानित)।स्थानांतरण योग्य कौशल (एसक्यूएल में)

प्रोग्रामर का प्रतिशत कितना पेशेवर स्तर है?
ए। स्वमूल्यांकन।
बी। निष्पक्ष मूल्यांकन।

(मेरे अनुभव में, एक समस्या प्रक्रियात्मक प्रोग्रामर की सराहना करते हैं कि नहीं वे अभी तक पता नहीं कितना, और कैसे वे क्या कर पता लागू नहीं होता है की ज्यादा है।)

उत्तर

4

ग्रोकिंग एसक्यूएल कुछ प्रोग्रामिंग भाषाओं को गड़बड़ाने से कुछ अलग है क्योंकि आपको सेट ऑपरेशंस के लिए एक महसूस प्राप्त करने की आवश्यकता है। ऐसा कहा जाता है कि यह वास्तव में किसी भी प्रमुख कोडिंग प्रतिमानों की तुलना में समझने के लिए एक कठिन दिमाग-सेट नहीं है - जैसे कि प्रक्रियात्मक कोड से ओप्स तक चलना (और जो मैंने कार्यात्मक प्रोग्रामिंग से कहीं ज्यादा आसान देखा है :-))

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

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

चयन * में शामिल होने के पार, ख

हम ए और बी की कार्तीय उत्पाद मिल आसान है। एक से एक शर्त में शामिल होने

चयन * में लाना है, जहां ख a.x = b.x

धारणात्मक कार्तीय उत्पाद प्रसंस्करण तो जहां शर्त पर यह छानने के रूप में देखा जा सकता है। स्पष्ट रूप से स्पष्ट आप कह सकते हैं (हालांकि यह आश्चर्य की बात है कि एसक्यूएल में पहले कितने लोग आते हैं, यह समझ में नहीं आता कि कार्टेसियन उत्पाद क्या है, जो इस अभ्यास को अकेले उस अवधारणा के लिए लायक बनाता है), लेकिन यह विचार की एक उपयोगी ट्रेन है जिसे समझने के बाद समझ में आता है स्वयं में शामिल होने जैसी जटिल चीजें और जटिल मल्टी-टेबल आपके सिर को पाने के लिए थोड़ा आसान बनाता है।

4

यह लेता है संबंध सेट के संदर्भ में सोचने के लिए बहुत सारे प्रयास और समझ। यह प्रतिबाधा विसंगति एक बड़ा कारण है कि ओआरएम कम एसक्यूएल कौशल वाले कंपनियों में लोकप्रिय क्यों है ..

+0

+1 सहमत ... सेट में सोचने के लिए मानसिकता को बदलना हमेशा एसक्यूएल नोब्स के लिए सीखने की अवस्था का सबसे बड़ा हिस्सा प्रतीत होता है। – Kev

+0

और अपने सिर में सेट में हेरफेर करने में सक्षम होना। परिणामों का एक सेट शेष परिणामों के पूरक है। सेट थ्योरी के बारे में अच्छा एसक्यूएल प्रोग्रामर कितना जानते हैं, मुझे आश्चर्य है? http://en.wikipedia.org/wiki/Set_theory#Basic_concepts –

2

मुझे दोनों में से कुछ पता है। पेशेवर रूप से बोलते हुए मैं उन्हें गहराई से जानता हूं। तकनीकी रूप से मुझे लगता है कि मैं अक्सर सतह को छू रहा हूं और मुश्किल से एक डिंपल बना रहा हूं।

कुछ परिणामों के साथ आने के रूप में सबसे अच्छे तरीकों में से एक कठिन तरीका है। यदि आप मुझे पास करते हैं तो ज्ञान का एक टुकड़ा यह है कि कोडिंग टी-एसक्यूएल सिद्धांत आधारित से अधिक अनुभवी है। यही है, अक्सर सिद्धांतों के बीच चयन करना कठिन होता है लेकिन यदि आप असली डेटा परिणाम चलाते हैं तो यह स्पष्ट हो जाता है कि यह क्या फिट बैठता है।

5

एसक्यूएल के बारे में अच्छी चीजों में से एक यह है कि आपके पास आने वाली कई प्रोग्रामिंग भाषाओं की तुलना में कम कीवर्ड हैं। सिंटैक्स सीखना बहुत आसान है, यह एप्लिकेशन है, जैसा कि कबूतर बताया गया है, यह बहुत कठिन है।

पेशेवर प्रक्रियात्मक कोडर पेशेवर एसक्यूएल कोडर बनने में कितना समय लगता है?

यह प्रोग्रामर पर निर्भर करता है। मैं कहूँगा कि आप कम से कम एक दो उत्पादन डेटा के खिलाफ इन डाटाबेस वस्तुओं में से प्रत्येक बनाया है करने की आवश्यकता होगी:

  • संग्रहित प्रक्रिया
  • दृश्य
  • सूचकांक
  • उत्प्रेरक
  • उपयोगकर्ता निर्धारित समारोह

तो, यह वास्तव में समय की बात नहीं है, बल्कि ज्ञान का मामला नहीं है।

मैंने सोचा कि मुझे पता था कि ये कैसे काम करते हैं, लेकिन अब मैं 100 से 800 मिलियन पंक्ति सेट के साथ काम कर रहा हूं, और इससे पहले कि इन बड़े परिणाम सेटों के लिए अपर्याप्त है। शुक्र है, बहुत से डेटाबेस प्रबंधन उपकरण अब बहुत बेहतर हैं। इसका मतलब है कि मैं अपने सिर को खरोंचने में कम समय बिताता हूं, और अधिक समय कोडिंग करता हूं।

मुझे लगता है कि इनमें से सबसे कठिन हिस्सा डेटाबेस विशिष्ट एक्सटेंशन हैं। वे डेटाबेस विक्रेताओं के बीच सभी अलग हैं। मैंने केवल SQL सर्वर, ओरेकल, और इंटरबेस/फ़ायरबर्ड के साथ काम किया है। थोड़ी देर के बाद मैंने उन सभी के साथ रहने की कोशिश की, और बस SQL ​​सर्वर पर केंद्रित है, क्योंकि यह मेरे मेट्रो क्षेत्र में सबसे आम है।

+1

सहमत हैं, आपको एक अच्छा SQL प्रोग्रामर बनने से पहले बड़े डेटा सेट पर काम करने की आवश्यकता है, क्योंकि यह आपको चीजों को सही तरीके से करने के लिए मजबूर करता है। –

2

यह "पेशेवर" की आपकी परिभाषा पर निर्भर करता है।

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

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

मैं कम से कम ओरेकल, आईबीएम डीबी 2, एमएस एसक्यूएल सर्वर, माईएसक्यूएल, पोस्टग्रेज़ के लिए जाना चाहता हूं, जिनमें से सभी के पास मुफ्त संस्करण हैं जिनका उपयोग आप सीखने की प्रक्रिया शुरू करने के लिए कर सकते हैं।

जबकि आत्म-अध्ययन आपको बहुत कुछ सिखा सकता है, मैं पाठ्यक्रमों में भाग लेने की भी सिफारिश करता हूं यदि आप उन्हें वित्त पोषित कर सकते हैं: सप्ताह में मैंने सीखने वाली इकाई मॉडलिंग में मुझे 20 साल से अधिक (गल्प) के लिए अच्छी स्थिति में खड़ा कर दिया है, जबकि मंच-विशिष्ट प्रदर्शन और अनुकूलन तकनीकों में एक सभ्य व्यावहारिक पाठ्यक्रम उपयोगी किक-स्टार्ट होगा।

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