RDBMSes को एक सनक कैसे माना जा सकता है?


11

2003 में अपने कम्प्यूटिंग ए-स्तर को पूरा करना और 2007 में कम्प्यूटिंग में एक डिग्री प्राप्त करना, और बहुत सारे एसक्यूएल उपयोग के साथ एक कंपनी में अपना व्यापार सीखना, मुझे भंडारण के लिए उपयोग किए जा रहे रिलेशनल डेटाबेस के विचार पर लाया गया था।

इसलिए, विकास के लिए अपेक्षाकृत नया होने के बावजूद, मुझे एक टिप्पणी ( https://softwareengineering.stackexchange.com/q/89994/12436 पर ) पढ़ने के लिए कहा गया था:

[कुछ देव] तिरस्कार [SQL] और सोचते हैं कि यह और RDBMS एक सनक है

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


1
कृपया संदर्भ प्रदान करें - आपने वह टिप्पणी कहां पढ़ी है?
एरान गैल्परिन

8
किसी भी चीज और किसी भी चीज को कहीं न कहीं एक सनक माना जाता है।
पेटर तोर्क

बहुत सच्चा Péter, बस क्यों के लिए उत्सुक?
स्टुपेरयूज़र

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

जवाबों:


28

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

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

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

ऑब्जेक्ट-रिलेशनल मिसमैच का सही समाधान OODBMSes हैं , जो दुर्भाग्य से बहुत अधिक कर्षण नहीं मिला। OOBDs को मूल रूप से समर्थन करने वाला लोकप्रिय इंजन PostgreSQL है, जो हाइब्रिड OO / RDBMS है। एक और OODBMS Zope Object DB है , जिसे पायथन में बनाया गया है और विशिष्ट सेटअप में अंतर्निहित इंजन के रूप में RDBMS का उपयोग किया जाता है।

वैकल्पिक दृष्टिकोण के लिए आवेदन या मध्य-वेयर स्तर में लागू किए गए अधिक तर्क हैं और अंतर्निहित भंडारण के लिए NoSQL समाधान का उपयोग करें ।

न तो OODBMS और न ही NoSQL "बस एक फ्लैट-फ़ाइल" हैं।


2
@ डैनियल: उन्होंने निश्चित रूप से यह नहीं कहा कि रिलेशनल मॉडल एक समस्या थी जिसे समाधान की आवश्यकता है; उसने ठीक वही कहा जो आपने कहा था - यदि आप ऑब्जेक्ट-ओरिएंटेड प्रतिमान पर अपने सॉफ़्टवेयर को मॉडलिंग करने के लिए प्रतिबद्ध हैं, तो रिलेशनल मॉडल एक समस्या है।
कार्सन 63000

1
@ करसन: मेरी क्षमायाचना, लेकिन ऐसा नहीं है कि मैं इसका जवाब कैसे पढ़ता हूं। @vartec का कहना है: "सही समाधान OODBMS है (जो दुर्भाग्य से बहुत कर्षण नहीं मिला)।" मैं सम्मानपूर्वक असहमत हूं: मैं कहूंगा कि वास्तविक समाधान संबंधपरक मॉडल को समझने और प्रभावी ढंग से उपयोग करने के लिए है। जब आप अपने डेटा मॉडल के लिए OO सिद्धांतों का उपयोग करना चाहिए, जो निश्चित रूप से एक सार्वभौमिक मामला नहीं है, तो OODBMS एक गरीब आदमी का समाधान है।
डैनियल प्राइडेन

1
@ डैनियल: मुझे लगा कि उनका मतलब है कि एक OODBMS सही समाधान था, फिर से, यदि आप ऑब्जेक्ट-उन्मुख प्रतिमान पर अपने सॉफ़्टवेयर को मॉडलिंग करने के लिए प्रतिबद्ध हैं। ऐसा नहीं है कि संबंधपरक मॉडल अपने आप में एक समस्या थी और OODBMS इसका समाधान था। लेकिन फिर भी, बहुत अधिक बहस करने से हम में से कौन सा सही तरीके से Vartec को समझ नहीं पाया, मैं झुकूंगा और अगर वह चाहे तो उसे स्पष्ट करने दें। :-)
कार्सन 63000

1
@Daniel: संदर्भ है महत्वपूर्ण। मैं स्पष्ट रूप से कहता हूं, कि संबंधपरक मॉडल OOP के संदर्भ में एक समस्या है। अब, ओओपी कितना सार्वभौमिक है या नहीं, यह इस उत्तर के दायरे से परे है। और btw। OODBMSes "गरीब आदमी का समाधान" नहीं हैं, ORM हैं।
vartec

1
@vartec: ठीक है, मैं अपने डाउनवोट को वापस लेता हूं। (जब तक पोस्ट को संपादित नहीं किया जाता है तब तक मैं वास्तव में इसे हटा नहीं सकता।) मुझे लगता है कि यह स्पष्ट करना सबसे अच्छा होगा कि ऐसे समाधान हैं जिनमें ओओ शामिल नहीं है। और हाँ, मैं मानता हूँ कि एक ORM OODBMS से भी बदतर है।
डैनियल प्राइडेन

13

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

अनुभवी प्रोग्रामर को डेटाबेस क्वेश्चन जानना चाहिए?

मैंने यह दावा किया कि अगर RDBMS डेटाबेस का उपयोग किया जा रहा है, जो कि Linq या ORM के बावजूद, एक डेवलपर को SQL का उन्नत ज्ञान होना चाहिए।

यह एक अत्यंत अलोकप्रिय मुखरता थी क्योंकि ऐसा लगता है कि SQL के महत्व पर सम्मानजनक मतभेदों के कारण, कम सम्मानजनक मानसिकता के लिए कि RDBMS स्वाभाविक रूप से MongoDB जैसे NoSQL डेटाबेस से नीच है।

संपादित करें: अपने दावे में और इजाफा करने के लिए, मैं उपयोगकर्ता SK- तर्क को उद्धृत करूंगा:

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


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

केवल यही कारण होगा कि कोई भी यह कहेगा कि "यह RDBMS क्रेज एक अपेक्षाकृत हाल की प्रवृत्ति है" यह दिखाने के लिए कि उनकी दाढ़ी कितनी ग्रे है। मैंने पहली बार 1995 में आपके द्वारा वर्णित उद्यम और व्यावसायिक अनुप्रयोगों के प्रकार पर काम किया था - संबंधपरक डेटाबेस तब हावी थे, अब वे हावी हो गए हैं, मैंने 16 साल के हस्तक्षेप में हर जगह काम किया है। अब स्पष्ट रूप से मैं कुछ के रूप में पुराना नहीं हूं, लेकिन जब मैं "अपेक्षाकृत हाल ही में" कहता हूं, तो मेरा मतलब "पिछले बीस वर्षों में" नहीं है।
कार्सन 63000

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

@ डपोर्टस, श्योर एसक्यूएल सही नहीं है, लेकिन यह मेरे लिए हर काम के लिए इतना महत्वपूर्ण था कि मुझे पता चला कि जब मैंने एसक्यूएल में थिंकिंग शुरू किया तो जीवन कितना आसान हो गया। यदि आप मुझे एक संबंधपरक मॉडल देते हैं और मुझसे सादे अंग्रेजी में सवाल पूछते हैं तो मैं आपको SQL में "उत्तर" लिख सकता हूं। आप कहते हैं कि "वे सभी जानते हैं कि एसक्यूएल है और इसलिए वे मानते हैं कि संबंधपरक मॉडल उनकी हताशा का कारण है", तो वे एसक्यूएल को अच्छी तरह से नहीं जानते हैं। एक गरीब प्रोग्रामर के साथ हर चीज को सबसे कम कॉमन डिमिनेटर के लिए हर समय क्यों पूरा किया जाना चाहिए, जैसे कि एक भारतीय प्रोग्रामर $ 10 / hr से कम कमाता है।
maple_shaft

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

9

सनक :

वह चीज जो कम समय में बहुत लोकप्रिय हो जाती है, और फिर उसी गति के बारे में भूल जाती है। "

RDBMSes उम्र के लिए लगभग (सीएस के संदर्भ में बहुत कम से कम) रहे हैं, इसलिए जिसने भी कहा कि या तो कुछ और कहने का मतलब है या अस्पष्ट है।


2
मेरा कहने का मतलब कुछ और था, नीचे मेरा जवाब देखें।
maple_shaft


3
संभवत: एक वास्तविक शब्दकोश का उपयोग करने के लिए बेहतर होगा क्योंकि urbandEDIA के विपरीत।
एरोन

हारून - प्रिंसटन के बारे में कैसे? "अतिरंजित उत्साह के साथ एक रुचि।" wordnetweb.princeton.edu/perl/…
Shauna

3

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


क्या "एक नया होने के लिए तैयार" = "एक नया दांव लगाने के लिए तैयार" होना चाहिए?
बाइनरी वॉरियर

ओह निश्चित रूप से, एक उदाहरण के रूप में फ्लैट फ़ाइल का इस्तेमाल किया। यह डीबी मॉडल की एक अच्छी कड़ी है।
स्टुपरयूज़र

@Binary हाँ और इसे प्रतिबिंबित करने के लिए संपादित किया गया।
क्रिस्टोफर Bibbs

3

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


1

संदर्भ के बिना यह निर्धारित करना मुश्किल है कि कौन / क्यों बयान कि RDBMs को एक सनक माना जाता है।

लघु से मध्यम अवधि (5 -10 वर्ष) में और मुझे लगता है कि अब और भी दूर जाने वाले नहीं हैं। एक RDBM संबंधपरक डेटा को संग्रहीत करने, संसाधित करने और पुनः प्राप्त करने का एक कुशल और प्रभावी तरीका प्रदान करता है जो कि ज्यादातर कंपनियों के ग्राहक / आदेश, यात्री / टिकट आदि हैं।

ऐसे अन्य विकल्प हैं जैसे कि NoSQL जो खुले स्रोत परियोजना के साथ पॉपुलैरिटी में बढ़ रहे हैं।

OLAP के रूप में ये वास्तव में (मेरे दिमाग में) विशेषज्ञ डेटाबेस हैं जो किसी व्यवसाय को किसी कंपनी के बारे में समय पर और उपयोगी सांख्यिकीय जानकारी प्रदान करने और वर्तमान डेटा पर "क्या अगर" परिदृश्यों को चलाने के लिए अनुमति देते हैं। निश्चित रूप से लगभग सभी मामलों में यह वर्तमान डेटा RDMBs से आया और हेरफेर किया गया और फिर OLAP डेटाबेस में डाला गया।


1

संबंधपरक डेटाबेस उसी अर्थ में एक सनक है जिसमें माइक्रोकंप्यूटिंग एक सनक है।


1

सरल उत्तर नहीं है। RDBMS एक सनक नहीं हैं। जब आप LinqPad के लिए एक वेबसाइट पर कुछ पढ़ते हैं, तो ध्यान रखें कि उनका उद्देश्य अपने उत्पाद के लिए लाइसेंस बेचना है।


सवाल इस बारे में है कि इसे एक सनक क्यों माना जाएगा, यह नहीं कि यह लिनक्पैड का प्रचारक बयानबाजी है या नहीं। LinqPad मानक मुफ़्त है।
स्टुपरयूजर

लिनक्पैड के प्रचार संबंधी बयानों को पढ़ते हुए उनसे सवाल आया। केवल यह इंगित करते हुए कि उसे नमक के दाने के साथ लेना चाहिए।
टुंडे

नहीं, ऐसा नहीं था, यह प्रोग्रामर.स्टैकएक्सचेंज . com/questions/89994/… पर मेपल_शेट की टिप्पणी से आया था । LinqPad की प्रतिलिपि एक चुटकी नमक के साथ ली गई थी , लेकिन मुझे इस बात की उत्सुकता है कि क्या देवता या तो बयान के साथ सहमत हैं।
स्टुपरयूजर

हां, LinqPad के प्रचार संबंधी बयान यह था कि RDBMS को क्वेरी करने के लिए SQL लिखना, ऐसा नहीं था कि RDBMS खुद ही पुरातन हो गए थे। वे RDBMS का उपयोग करने के लिए एक बेहतर तरीका बेच रहे हैं, उनके लिए कोई विकल्प नहीं है।
कार्सन 63000

@StuperUser और Carson63000: समझ गए। मेरी गलती।
टुंडे

0

सनक सही शब्द नहीं है क्योंकि वे लंबे, लंबे समय के लिए साथ हैं। मुझे लगता है कि आप यह तर्क देना शुरू कर सकते हैं कि तकनीक बहुत पुरानी है और अगली अगली चीज़ के साथ आने का समय हो सकता है - नो आर्किटेक्चर शायद


0

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

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

RDBMS (और इसके मुख्य वाहन, SQL) की अवधारणा प्रौद्योगिकी में एक कदम का प्रतिनिधित्व करती है, जो कई अन्य लोगों की तरह, बेहतर लोगों द्वारा छोड़ी जा सकती है, यही सब है।

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