डेटाबेस प्रोग्रामर क्या करते हैं?


16

जब भी मैं Oracle प्रोग्रामर आदि के बारे में पढ़ता हूं, मैं भ्रमित हो जाता हूं। मुझे नहीं पता कि वे वास्तव में क्या करते हैं।

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

इस संबंध में, डेटाबेस प्रोग्रामिंग मूल रूप से तालिका नहीं बना रही है और क्या ये तालिकाएँ SQL कथनों के जवाब में संसाधित नहीं होती हैं, जो एक एप्लिकेशन द्वारा जारी की जाती हैं जो आमतौर पर सामने का छोर होता है? तो क्या टेबल क्रिएशन इतनी बड़ी बात है?

जवाबों:


22

वास्तव में इस बात की सराहना करने के लिए कि डेटाबेस प्रोग्रामर को वास्तव में आपके पास क्या करना है - मुझे इसे एक और तरीका बताने की कोशिश करनी चाहिए।

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

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

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

(बेशक यह एक बहुत कम की गई सूची है, मैं केवल उन बिंदुओं पर लेने की कोशिश कर रहा हूं, जिनके डेटाबेस विकास में समानताएं हैं)।

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

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

जिस तरह एप्लिकेशन डेवलपमेंट छिपे हुए गड्ढों (मुद्दों को फैलाने आदि ...) से भरा होता है, उसी तरह डेटाबेस डेवलपमेंट भी होता है, और अक्सर इन मुद्दों के बेईमानी से गिरने के परिणाम बहुत गंभीर होते हैं (जैसे डेटाबेस का उपयोग करके सभी एप्लिकेशन के लिए डेटा की हानि या संभावित डाउनटाइम) ।

मुझे लगता है कि जो प्रोग्रामर बनाता है उसे लगता है कि इसमें कुछ भी नहीं है ("प्रोग्रामर ऐसा नहीं कर सकता?") यह है कि भूमिकाओं के बीच बहुत अधिक ओवरलैप है, और उन्हें समान कौशल सेट की आवश्यकता है। मुझे इस बात में कोई संदेह नहीं है कि जिस किसी के पास एक अच्छा डेवलपर होने की क्षमता है, उसके पास समय और अनुभव देने के लिए एक अच्छा डेटाबेस प्रोग्रामर बनने की क्षमता है, हालांकि किसी को भी एक अनुभवी डेटाबेस विशेषज्ञ के मूल्य को कम नहीं समझना चाहिए।


उत्तर के लिए धन्यवाद (मैंने एक पाने की उम्मीद छोड़ दी थी)! मैंने जो कारण पूछा, वह है, मैं, एक "एप्लिकेशन प्रोग्रामर" के रूप में, अपने प्रोजेक्ट के लिए कुछ करने के लिए msaccess में एक छोटा डेटाबेस तैयार किया और यह किसी काम का ज्यादा नहीं लगता था, लेकिन प्रोग्रामर के रूप में मुझे dbase isn ' टी "आसान"। लेकिन मुझे अभी भी इसे समझने के लिए आवश्यक परिप्रेक्ष्य की कमी है। मेरा मतलब है, एक dbase दूसरे से कितना अलग हो सकता है? जैसे कोई ऐप देव फाइल प्रबंधन कोड "लिखता है" लेकिन पुस्तकालयों का उपयोग करता है, क्या वहाँ dbase डिजाइन के लिए उपलब्ध टेम्पलेट्स / पुस्तकालयों का उपयोग करने के लिए तैयार नहीं हैं? या वास्तविकता में dbase प्रोग्रामिंग है dbase admin?

एक सामान्य प्रोग्रामर भी ऐसा नहीं करेगा? मुझे लगता है कि मैंने अभी तक डेटाबेस प्रोग्रामर के लिए किसी भी उपयोग के लिए बहुत छोटे संगठनों में काम किया है, क्योंकि एप्लिकेशन डेवलपर आमतौर पर ट्रेन चलाने वाला एक है, इसलिए बोलने के लिए। वह जानता है कि वह क्या चाहता है और आमतौर पर इसे खुद डिजाइन करता है।
ब्रायन

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

कहा कि, छोटी कंपनियों (<50 लोगों) में कम से कम एक (अधिमानतः दो या तीन) स्टैंडअलोन डीबीए (s) सुपर, सुपर अच्छा है जहां तक ​​अनुप्रयोग डेवलपर्स का संबंध है। कि कंप्यूटर को ठीक करने के लिए एक समर्पित आईटी स्टाफ, लेकिन यह पूरी तरह से एक और कहानी है।
माइक एस

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

14

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

वे धुन के सवालों का प्रदर्शन करते हैं। मैंने उन क्वेरीज़ को बदल दिया है जो मिलकॉन्ड्स को चलाने के लिए मिनट लेती हैं। मैंने एक प्रक्रिया को बदल दिया है जो 30 मिनट से कम समय तक चलने में 24 घंटे से अधिक समय लेता है। वे अनुक्रमण संरचनाओं को डिज़ाइन करते हैं और बनाए रखते हैं जो चयन की गति के खिलाफ आवेषण की गति को संतुलित करेगा।

वे जटिल प्रश्नों को लिखते हैं, विशेषकर प्रश्नों की रिपोर्टिंग। मैंने व्यक्तिगत रूप से प्रश्न लिखे हैं जो आवश्यकता की जटिलता के कारण 1000 से अधिक लंबी हैं। वे अभी भी था और जल्दी से चला था।

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

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

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

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


8

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

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

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


2

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

यदि आपको संग्रहीत प्रक्रियाओं के बारे में संदेह है, तो यह देखें: संग्रहीत प्रक्रियाओं का उपयोग क्यों करें?

सीधे शब्दों में कहें: डेटाबेस डेवलपर्स आपके आवेदन के लिए MVC (या व्यवसाय लॉगिक्स यदि आप mvc का उपयोग नहीं करते हैं) की देखभाल करने के लिए संग्रहीत प्रोग्राम (प्रक्रिया और कार्य) लिखते हैं।


2

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

Sybase मुझे लगता है कि एक समान प्रोग्रामिंग वातावरण के साथ एक और एक है।

अन्य डेटाबेस रिपोर्ट की परिभाषा और निष्पादन की अनुमति देते हुए खुद को "सिर्फ" तक सीमित कर सकते हैं, जबकि अन्य अभी तक किसी भी रूप या रिपोर्ट डिजाइन / निष्पादन सुविधाओं की पेशकश नहीं कर सकते हैं।


1
"ओरेकल न केवल एक डेटाबेस है, बल्कि एक पूर्ण प्रोग्रामिंग वातावरण है ... अन्य डेटाबेस परिभाषा और निष्पादन की अनुमति देने के लिए खुद को" बस "तक सीमित कर सकते हैं ..." यह मुझे नहीं पता था। अब समझ में आता है।
थॉमस

SQL Server समान है। संग्रहीत प्रक्रियाओं के अलावा, SSIS पैकेज दृश्य प्रोग्रामिंग की अनुमति देते हैं, अन्य मौजूदा कोड को कॉल करते हुए, vb.net या c # .net प्रोग्राम लिखते हैं, और बहुत अधिक, सभी एक IDE में लिपटे हुए हैं। मैंने SSRS का उपयोग नहीं किया है, लेकिन मुझे संदेह है कि यह समान है। प्रोग्रामिंग का एक टन है, और एक डेटाबेस प्रोग्रामर को बहुत सारे विभिन्न उपकरणों और भाषाओं और प्रक्रियाओं को जानना है।
thursdaysgeek

2

मैं कहूंगा कि एक डेटाबेस डेवलपर निम्नलिखित में से एक या अधिक के लिए जिम्मेदार है

  • डिजाइन, इसमें टेबल बनाना (या बल्कि संबंधों को परिभाषित करना) शामिल है
  • ऑप्टिमाइज़ेशन, उचित इंडेक्स सेट करना, कुंजी चुनना, सही डेटा प्रकार चुनना
  • कार्य, प्रश्नों में उपयोग करने के लिए उपयोगी कार्य लिखना
  • प्रक्रिया तर्क, लेखन तर्क जो कसकर डेटाबेस परत के लिए युग्मित है।
  • घटनाओं का जवाब देने के लिए ट्रिगर फ़ंक्शन बनाना
  • ऊपर के उत्पादन विनिर्देशों।

RDBMS के आधार पर प्रश्न में यह जैसे कार्य शामिल हो सकते हैं

  • रिपोर्ट और प्रपत्र बनाना
  • डेटा आयात / निर्यात के लिए प्रवाह बनाना

जिम्मेदारियों की इस सूची पर एक नजर है

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