वेब विकास में डेटाबेस कौन डिजाइन करता है? [बन्द है]


11

वेब विकास के संदर्भ में, डेटाबेस कौन डिज़ाइन करता है? सर्वर-साइड प्रोसेसिंग, डेटा मॉडलिंग और इसी तरह बैक-एंड वेब देव को जोड़ने वाली सूचनाओं की एक पूरी मेजबानी के बावजूद, समीकरण का डेटाबेस डिज़ाइन पहलू रहस्यमयी रूप से अनुपस्थित लगता है।

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

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


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

what those field specifications are, अगर आपके प्रोजेक्ट में एक युक्ति है, तो आपको अपने मॉडल की पहचान करने में सक्षम होना चाहिए।
Walfrat

1
मैं कहूंगा, इन दिनों, जो भी फ्रेमवर्क आप उपयोग कर रहे हैं वह आपके डेटाबेस डिज़ाइन को निर्धारित करता है।
पीटर बी

जवाबों:


18

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

मेरे अनुभव में

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

जमीनी स्तर:

  • डेवलपर्स को व्यवसाय और समस्या डोमेन डीबीए से बेहतर पता है, इसलिए वे बहुत प्रारंभिक डिजाइन करते हैं और, डेवलपर के अनुभव के आधार पर ऐसा डिज़ाइन अंतिम डिज़ाइन के बहुत करीब हो सकता है।
  • DBA की भूमिका अधिकतर NF, नामकरण परंपराओं, प्रदर्शन के विचारों को सुनिश्चित करने, स्पष्ट त्रुटियों को ठीक करने और अंत में एक भौतिक मॉडल, फिर एक डेटाबेस विशिष्ट स्क्रिप्ट उत्पन्न करने और डेटाबेस बनाने के लिए इन्हें चलाने के लिए है।
  • मैं कहूंगा कि यह 80% डेवलपर और आवश्यकता विश्लेषण कार्य और 20% डीबीए कार्य है।

अपडेट करें:

DBA के 3 प्रकार हैं:

  • विकास डीबीए जो डेटा-मॉडलिंग जानते हैं, एसक्यूएल विशेषज्ञ हैं और संग्रहीत प्रक्रियाओं को लिख सकते हैं, वे आमतौर पर पूर्व डेवलपर्स हैं;
  • उत्पादन डीबीए जो स्थापित करने, प्रदर्शन ट्यूनिंग, बैकअप और बहाल करने, आदि में विशेषज्ञ हैं।
  • और जैक-ऑफ-ऑल-ट्रेड्स डीबीए जिन्होंने उन सभी चीजों को करने का काम किया है और जैसे कि अधिकांश कर सकते हैं (वे बहुत कम हैं)।

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


2
यह विचार कर रहा है कि आपके पास एक डीबीए है जो ऐसा कर सकता है, जहां मैं हूं और मैं पहले था, उसके लिए मदद करने के लिए कोई नहीं था।
वॉलफ्रैट

2
आप सही हैं। 3 प्रकार के डीबीए हैं: विकास डीबीए जो अब डेटा-मॉडलिंग करते हैं, SQL विशेषज्ञ हैं और संग्रहीत कार्यविधियाँ लिख सकते हैं; उत्पादन डीबीए जो स्थापित करने, प्रदर्शन ट्यूनिंग, बैकअप और बहाल करने आदि में विशेषज्ञता रखते हैं और जैक-ऑफ-ऑल-ट्रेड्स डीबीए जिन्होंने उन सभी चीजों को करने में काम किया है और एक ऐसा सबसे अधिक कर सकता है। अफसोस की बात है कि ज्यादातर डीबीए केवल डीबीए का उत्पादन कर रहे हैं।
ट्यूलेंस कोर्डोवा

9
आप "हम-नहीं-बर्दाश्त-ए-डीबीए" भूल गए, जहां दुकान इतनी छोटी है कि कुछ डेवलपर डेटाबेस को पक्ष में रखता है। वह भी बहुत सामान्य है।
सेबस्टियन रेडल

1
क्या "एनएफ" के लिए खड़ा है?
B:04овиЈ

1
सामान्य रूप, विकिपीडिया भी देखें ।
शुक्र

4

यह निर्भर करता है कि डेटाबेस किसके लिए उपयोग किया जाता है।

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

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

विशेष रूप से कुछ वेब ऐप्स मौजूदा डेटाबेस में सिर्फ वेब इंटरफेस हैं।

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

मैंने महसूस किया है कि एक डेटाबेस का PROPER (डिज़ाइन) कोई छोटा काम नहीं है ...

NoSQL , दस्तावेज़-उन्मुख डेटाबेस , कुंजी-मूल्य डेटाबेस , ज्ञान प्रबंधन , ज्ञान प्रतिनिधित्व और तर्क , ऑन्कोलॉजी , विशेषज्ञ प्रणाली , व्यापार नियम दृष्टिकोण , ईआरपी , सीएमएस के बारे में भी पढ़ें । शायद REDIS , MongoDB , आदि का उपयोग करने पर विचार करें ।


निश्चित नहीं। मैंने ऐसा नहीं किया। उन पिछले कुछ लिंक के लिए धन्यवाद!
the_endian

IMHO, पहले पैराग्राफ में लिंक भी पढ़ने लायक हैं।
बेसिल स्टारीनेवविच

हाँ, मुझे यकीन नहीं है, लेकिन ऐसा लगता है कि यह सामान डेवलपर पाठ्यक्रमों में लगभग उतना ही "कवर" नहीं है जितना हो सकता है। इस बिंदु पर जहां मुझे यकीन है कि वेब देव भूमि में कुछ गंभीर डेटाबेस हैकॉजर हैं। वे आपको सिखाते हैं कि डीबीएमएस का उपयोग कैसे किया जाए, लेकिन हमारे द्वारा यहां बताए गए सामान के बारे में नहीं।
the_endian

@TeeSee मैं आपको आश्वस्त कर सकता हूं, यह सिर्फ वेब देव भूमि नहीं है जहां डेटाबेस के साथ गंभीर हैक कार्य चल रहे हैं। लेकिन हाँ, इसका बहुत सा हिस्सा है, आमतौर पर व्यावसायिक कारणों से, जैसे प्रारंभिक लागत को कम रखना (रखरखाव और तकनीकी ऋण के बारे में भूल जाना)
gabe3886
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.