क्या डीबीए को SQL के अलावा सिस्टम भाषा में प्रोग्राम करने की आवश्यकता है?


20

डेटाबेस प्रशासक को "सिर्फ SQL" के अलावा सिस्टम या एप्लिकेशन स्तर प्रोग्रामिंग भाषाओं (उदाहरण के लिए .NET या PHP) को जानने के लिए किस सीमा तक की आवश्यकता होती है?

इस प्रश्न के प्रयोजनों के लिए, SQL मानक का कोई विशिष्ट संस्करण इस उत्तर के लिए नहीं माना जाता है (SQL ANSI 86, SQL ISO 87, SQL: 2008) क्योंकि यह प्रश्न SQL के दायरे से बाहर डेस्कटॉप या सर्वर भाषाओं के संबंध में है।

जवाबों:


25

निर्भर करता है।

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

स्क्रिप्टिंग लैंग्वेज (PowerShell, cmd.exe उदाहरण के लिए) हमेशा निगरानी, ​​तैनाती आदि के लिए उपयोगी होती हैं। मेरे पास अक्सर कुछ पर्ल स्क्रिप्ट हैं जिन्हें मुझे बनाए रखना था (बस के बारे में)। फिर मिश्रित ईटीएल पैकेज हैं जिनके बारे में आपसे अपेक्षा की जाएगी।

यह कहते हुए कि, अधिकांश डीबीए (जो मुझे पता है) बुनियादी सीएलआर सामान लिखने या पीएल / एसक्यूएल को अच्छी तरह से जानने में सक्षम होंगे। मेरे लिए, विभाजन रेखा .net या जावा के व्यापक पैटर्न या वास्तुकला के बारे में जान रही है। मुझे इसकी आवश्यकता डीबी डेवलपर या डीबीए के रूप में नहीं है। उसी तरह से .net या PHP या Java बंदरों डेटाबेस डिजाइन या वास्तुकला या कोड के रूप में अच्छी तरह से मुझे समझ में नहीं आता है।

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


4
+1 के लिए "यह निर्भर करता है" इसके बाद कुछ और याद किया (या शायद बहुत स्पष्ट था) - यह आपकी दुकान के आकार पर निर्भर करता है। मेरी पिछली नौकरी आईटी डिपार्टमेंट में हम तीनों की थी, मुझे वेब डेवलपमेंट सहित सब कुछ करना था। अब 80 आईटी कर्मचारियों के साथ मेरे वर्तमान स्थान पर, यह हर समय सभी डेटाबेस है।
साइमन रिगर्त्स

idk, मुझे लगा जैसे मेरा एक बड़े या छोटे दुकान की दिशा में सक्षम नहीं था ...
jcolebrand

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

gbn - आप दैनिक आधार पर खुद को कितना कोड लिखते हैं? क्या यह ज्यादातर SQL है?
रोबोपिम

@pimbrouwers अब, यह PowerShell और SQL है, लेकिन मैं एक sysadmin + DBA हूं। अंतिम नौकरी SQL, कुछ PowerShell, कुछ c # थी। इससे पहले, ज्यादातर SQL और SSIS (BI DBA)। यह एसक्यूएल हमेशा मैं क्या करता है में सुविधाओं पर निर्भर करता है।
gbn

14

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

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

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

आपके प्लेटफ़ॉर्म पर उपयोग किए जाने वाले स्क्रिप्टिंग टूल से संभवतः आपको अधिक माइलेज मिलेगा, हालाँकि बहुत सारे सिस्टम .Net, Java, COM या वेब सर्विस APIs को एक्सपोज़ करते हैं। यदि आपको इन एपीआई के खिलाफ कुछ कोड करने की आवश्यकता है, तो आपको उस एपीआई का कम से कम एक बुनियादी काम करने वाला ज्ञान चाहिए। हालांकि, उन्नत एप्लिकेशन आर्किटेक्चर कौशल आमतौर पर ऐसा करने के लिए आवश्यक नहीं है।

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

ईटीएल और डेटाबेस के आसपास टूलींग भी डीबीए के रीमिट में आ सकती है। मैंने काफी कुछ डीबीए भूमिकाओं को विज्ञापित देखा है जो एक महत्वपूर्ण मात्रा में बैक-एंड डेवलपमेंट कार्य को शामिल करने के लिए लग रहा था। यह छोटी कंपनियों में सबसे आम होगा। हाल ही में एक पोस्टर कस्टम मेट्रिक्स को ओरेकल एंटरप्राइज मैनेजर में एकीकृत करना चाहता था, जिसमें ऐसा करने के लिए एक प्लगइन एपीआई है। इस तरह की आवश्यकताओं को देखना काफी आम है, और अनिवार्य रूप से इसका एकमात्र तरीका कुछ गोंद कोड लिखना है।

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


6

मैं आमतौर पर नहीं कहूंगा, लेकिन यह कभी दर्द नहीं होता। SQL सर्वर इतना बड़ा है कि मुझे नहीं लगता कि एक व्यक्ति पूरे उत्पाद में महारत हासिल कर सकता है। मैं SQL Server 4.2 के बाद से एक डीबीए रहा हूं, और अपने आप को अधिकांश क्षेत्रों में एक विशेषज्ञ मानता हूं, लेकिन मैं मानता हूं कि मैं अपनी उंगलियों पर हर कदम पर गूगल के बिना एमडीएक्स क्वेरी नहीं लिख पाऊंगा।

मैं जो कहना चाह रहा हूं वह यह है कि आप हर चीज के विशेषज्ञ नहीं हो सकते। वास्तव में अच्छा डीबीए होने का मतलब है कि आपको टी-एसक्यूएल में महान होना चाहिए, लेकिन .NET पर बहुत अच्छा होने की संभावना नहीं है, या कम से कम दूसरों के रूप में प्रभावी नहीं है जो .NET पर अपना समय केंद्रित कर सकते हैं।

Powershell जानना अच्छा है, जैसा कि SSIS का इन-आउट है। इसके अलावा, अन्य विकास भाषाओं को डेवलपर्स के लिए छोड़ दें।


मुझे लगता है कि यह ध्यान देने योग्य है कि एसएसएएस वास्तव में एसक्यूएल सर्वर से एक अलग इकाई है और बहुत से लोग कभी भी उस स्थिति में नहीं आते हैं जहां वे इसके साथ बड़ी मात्रा में काम करते हैं। मैं लगभग 2001 से SSAS का उपयोग कर रहा हूं और मैं वास्तव में इसे हर साल कुछ हफ्तों के लिए हिट करता हूं।
ConcernedOfTunbridgeWells

SSAS SSIS और SSRS के रूप में SQL सर्वर परिवार का केवल एक हिस्सा है। जैसा मैंने कहा, SQL Server BIG है।
डेटागोड

1
SSAS SQL सर्वर के साथ बंडल है, लेकिन यह एक स्टैंडअलोन सिस्टम है। इसका उपयोग करने के लिए आपको वास्तव में SQL सर्वर की आवश्यकता नहीं है - यह किसी भी चीज़ से डेटा लोड कर सकता है जिसे आप इसे कनेक्ट करने के लिए प्राप्त कर सकते हैं। मुझे लगता है कि SSAS का उपयोग केवल SQL सर्वर साइटों की काफी कम संख्या में किया जाता है। Mdx के लिए संख्या विज्ञापन बनाम sql सर्वर कौशल चाहने वाले joberve.com पर लिस्टिंग की संख्या की तुलना करने का प्रयास करें। एसक्यूएल सर्वर के साथ काम करने और SSAS को कभी नहीं छूने के लिए यह अनुचित नहीं है।
कंसर्नडऑफटुनब्रिजवेल्स

SSIS को एक स्वसंपूर्ण sytem के रूप में स्थापित किया जा सकता है। क्या यह आपके मॉडल के अनुरूप है? आपको क्या लगता है कि SSAS नाम भी किसके लिए खड़ा है? SQL सर्वर विश्लेषण सेवाएँ। यह सुइट का हिस्सा है, लोग इसका उपयोग करते हैं या नहीं।
डेटागोड

5

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

मेरे पास ग्रेड स्कूल में एक डेटाबेस प्रशासन प्रशिक्षक था, जिसने हमें उन सवालों की एक सूची दी जो किसी भी अच्छे (ओरेकल) डीबीए का जवाब देने में सक्षम होना चाहिए: (मैं सिर्फ 40 या तो की सूची में से कुछ पर प्रकाश डाला गया)

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

(ओरेकल) इन चीजों को प्रभावी बनाने के लिए डीबीए की जरूरत है। अधिकांश डेवलपर्स जो मुझे पता है (जो ओरेकल के खिलाफ कोड है) इनमें से एक या दो को सही ढंग से जवाब देने के लिए कड़ी मेहनत की जाएगी।


5

यदि आप डीबीए हैं, तो आप शायद प्रदर्शन और सुरक्षा (दूसरों के बीच) के दायरे में काम कर रहे हैं। इसमें क्लाइंट क्लाइंट के ट्यूनिंग के साथ प्रोफाइलिंग और सहायता शामिल हो सकती है जो डेवलपर्स काम कर रहे हैं। इस प्रकार यह निश्चित रूप से उन भाषाओं को जानने के लिए दुख नहीं होगा जो डेवलपर्स उपयोग कर रहे हैं, और डेटाबेस सर्वर के साथ इंटरफ़ेस कैसे करें। SQL सर्वर के लिए, यह शायद .NET है। MySQL के लिए, शायद php या जावा के कुछ संयोजन।

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

यदि आप कड़ाई से डीबीए कर रहे हैं, तो आप ग्राहक अनुप्रयोगों को विकसित करने के अर्थ में कोई प्रोग्रामिंग नहीं करेंगे , लेकिन आपको पता होना चाहिए कि वे कैसे काम करते हैं (आमतौर पर बोलते हैं)।


1
+1 मेरा .net ज्यादातर यह जानने के लिए सीमित है कि वे मेरे डेटाबेस को कैसे कहते हैं। यह महत्वपूर्ण बिट है :-)
gbn

4

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

TSQL में Sql सर्वर में कुछ कार्यक्षमता के लिए .NET (CLR) प्रबंधित कोड लिखने की क्षमता है , और इसलिए, एक अच्छे डीबीए को शायद इस बारे में जानना होगा (लेकिन यह हमेशा पुराने संस्करणों में उपयोग करने में सक्षम नहीं है, इसलिए बहुत कुछ डीबीए मेरे अनुभव में उस विशेषता से दूर भागते हैं)।

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


+1, लेकिन मुझे लगता है कि ओरेकल पर सर्वर-साइड जावा आमतौर पर बहुत उपयोगी नहीं है ( अजीब अपवाद है )
जैक डगलस

@JackDouglas - सिस्टम कार्यों के लिए ज्यादातर सर्वर साइड जावा या सीएलआर कोड उपयोगी है। सर्वर साइड कोड पर ध्यान देने वाली एक बात यह है कि आप इसे चलाने के लिए उपयोग की जाने वाली सीपीयू क्षमता पर डीबी सर्वर लाइसेंस के लिए भुगतान करते हैं।
कंसर्नडऑफटुनब्रिजवेल्स

उनमें से कोई भी विशेष रूप से हर रोज उपयोगी नहीं है, लेकिन जब आपको इसकी आवश्यकता होती है, तो आपको इसकी आवश्यकता होती है। और अगर डीबीए उन चीजों से अवगत नहीं है, और कम से कम डेवलपर्स द्वारा दिए गए कोड को नहीं पढ़ सकता है, तो वह परेशानी में है। बस इतना ही कह रहा था।
jcolebrand

-1

मुझे पूरा विश्वास है कि केवल बड़े अनुप्रयोगों वाली बड़ी दुकानों में एक गैर-प्रोग्रामिंग डीबीए की मांग होती है, क्योंकि साधारण डेटाबेस वाली छोटी दुकानें जैक-ऑफ-ऑल-ट्रेड्स डेवलपर / डीबीए के साथ दूर हो सकती हैं। एक DBA के लिए एक उत्पाद (Oracle, SQL सर्वर, जो भी हो) का मास्टर बनने के लिए इस जानकारी की मांग करनी होगी! डीबीए को जटिल वातावरण और समस्याओं के अधीन किया जाना चाहिए ताकि उसे अधिक ज्ञानवान बनने में मदद मिल सके। यह मूल रूप से मेरा एक शेख़ी है, क्योंकि मैं एक छोटी सी दुकान पर डीबीए हूं और मुझे ऐसा कुछ भी नहीं करना है जिसमें 2 से अधिक न्यूरॉन्स की आवश्यकता हो, मुझे लगता है कि मैं इस काम में अपना समय बर्बाद कर रहा हूं। मैं एक डेवलपर बनना चाहता हूं।

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