2008-11-15 16 views
5

के संकेत उनके काम के आधार पर, आप एक महान एसक्यूएल डेवलपर को कैसे अलग करते हैं?एक महान एसक्यूएल डेवलपर

उदाहरणों में शामिल हो सकता है:

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

+0

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

+0

क्या आप एक व्यापार प्रक्रिया संचालन का उदाहरण दे सकते हैं जिसके लिए आप वर्तमान में कर्सर का उपयोग कर रहे हैं? – dkretz

+0

बिजनेस यूनिट 103 के 2000 कर्मचारियों ने 01-मार्च -2012 को कार्यवाही की कार्रवाई की है। मैं 02-मार्च -2012 को उन कर्मचारियों के लिए किराया कार्रवाई जोड़ना चाहता हूं और उनके वेतन रिकॉर्ड अपडेट करना चाहता हूं। प्रत्येक कर्मचारी के लिए उच्चतम रिकॉर्ड पर कुछ फ़ील्ड नए कार्यों और अभिलेखों के लिए आगे बढ़े जाएंगे। मैं उन कर्मचारियों के कार्यों को कैसे पकड़ूंगा और कर्सर के बिना रिकॉर्ड का भुगतान कैसे करूं? सिस्टम पीपुल्सॉफ्ट सिस्टम की नकल करता है अगर इससे मदद मिलती है। – tp9

उत्तर

12

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

इसके अलावा, एक महान डीबी डेवलपर को तर्क को ठंडा करने में जटिल होना पड़ता है, और पता है कि अलग-अलग स्थितियों में विभिन्न बहु-मार्गों के परिणाम क्या होंगे। जॉइन के साथ आराम की कमी खराब SQL कोड का # 1 कारण है (और उस मामले के लिए खराब SQL डिज़ाइन)।

कर्सर का उपयोग नहीं करता:

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

अस्थायी तालिकाओं का उपयोग नहीं करता है। उन तकनीकों का

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

तो, इन तरह की उन्नत अवधारणाओं का उपयोग प्रतिबंधित नहीं है, लेकिन जब तक कि आप वास्तव में एक कठिन समस्या पर काम कर रहे एसक्यूएल विशेषज्ञ से बात नहीं कर रहे हैं, किसी कारण से, खुद को एक रिलेशनल समाधान में उधार नहीं देता है। .. हाँ, वे शायद चेतावनी संकेत कर रहे हैं।

+1

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

+0

और, अधिकांश चीजों के साथ ... "यह निर्भर करता है"। विभिन्न वास्तुशिल्प और अस्पष्ट कारणों से डीबी पर कोड लिखने के लिए मनाया जा सकता है जो कि किसी अन्य परत पर अधिक उपयुक्त होगा, और ऐसे समय होते हैं जब ये उन्नत डीबी सुविधाएं उपयोगी होती हैं। –

8

मुझे नहीं लगता कि कर्सर, अस्थायी तालिकाओं या अन्य SQL प्रथाएं स्वाभाविक रूप से खराब हैं या उनका उपयोग एक स्पष्ट संकेत है कि डेटाबेस प्रोग्रामर कितना अच्छा है।

मुझे लगता है कि हर प्रकार की समस्या के लिए सही उपकरण है। निश्चित रूप से, अगर आपके पास केवल हथौड़ा है, तो सबकुछ एक नाखून जैसा दिखता है। मुझे लगता है कि एक महान एसक्यूएल प्रोग्रामर या डेटाबेस डेवलपर एक व्यक्ति है जो जानता है कि कौन सा उपकरण एक विशिष्ट स्थिति में सही है। IMHO आप विशिष्ट पैटर्न को छोड़कर सामान्यीकृत नहीं कर सकते हैं।

लेकिन अंगूठे का नियम हो सकता है: एक महान डेटाबेस डेवलपर को औसत प्रोग्रामर की तुलना में जटिल परिस्थितियों के लिए संक्षिप्त और सुरुचिपूर्ण समाधान मिलेगा।

4

यहाँ कुछ चीजें हैं जो लागू न चलाने के- the- मिल करने के लिए सॉफ्टवेयर डेवलपर्स रहे हैं, लेकिन अच्छा एसक्यूएल कौशल के साथ किसी पर लागू होते हैं:

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

उदाहरण आप कर्सर, अस्थायी तालिकाओं का उपयोग नहीं, या फिर किसी कार्य के लिए 3 विकल्प प्रश्नों को जानने का देते हैं, मुझे नहींएक महान एसक्यूएल डेवलपर बनने के संकेत पर विचार करेंगे। शायद मैं उन लोगों को बुलाऊंगा जो उन चीजों को "एक्रोबैट" कहते हैं।

+0

ये एक अच्छे एसक्यूएल डेवलपर के अंक हैं, लेकिन मुझे नहीं लगता कि वे "महान" डेवलपर को अलग करने के लिए पर्याप्त हैं। – RoadWarrior

+0

ठीक है, क्वालीफायर के साथ कि रूढ़िवादी एक्रोबैट्स और मूर्ख एक्रोबैट्स हैं। – dkretz

+0

हां, यही मेरा मतलब था। एक एक्रोबैट प्रभावशाली कलाकृति, कौशल और प्रतिभा प्रदर्शित कर सकता है। लेकिन अक्सर बिंदु ए से बिंदु बी –

3

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

+1

शांत, अच्छा सामान्य, अस्पष्ट, वास्तव में-जोड़-कोई-मूल्य जवाब नहीं! –

0

ज्ञात डेटाबेस कार्यों को सहेजने के लिए जेनेरिक कोड या कोड उत्पन्न करने के लिए कोड उत्पन्न करने के लिए INFORMATION_SCHEMA और तालिका मेटाडेटा का उपयोग कैसे करें जानता है।

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