ऑब्जेक्ट ओरिएंटेड डेटाबेस का उपयोग रिलेशनल डेटाबेस के रूप में ज्यादा क्यों नहीं किया जाता है? [बन्द है]


18

मैं कई रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) लेकर आया हूं। लेकिन हाल ही में मैंने हाइबरनेट का इस्तेमाल किया जिससे मुझे आश्चर्य हुआ कि ऑब्जेक्ट ओरिएंटेड डेटाबेस अधिक लोकप्रिय क्यों नहीं हैं।

यदि जावा या C # जैसी ऑब्जेक्ट ओरिएंटेड भाषाएँ इतनी लोकप्रिय हैं, तो ऑब्जेक्ट ओरिएंटेड डेटाबेस मैनेजमेंट सिस्टम (OODBMS) अधिक लोकप्रिय क्यों नहीं हैं?


1
"NoSQL" दृष्टिकोण अब बहुत लोकप्रिय है। RDBMSes सीमित और सीमित हैं, और, सौभाग्य से, वे अब जल्दी से अपना मैदान खो रहे हैं।
एसके-लॉजिक

आप oodb के रूप में क्या संदर्भित करते हैं? हाइबरनेट एक ओओ इंटरफेस के साथ rdbms के साथ संवाद करने के लिए सिर्फ एक रूपरेखा है।
सिमोन बर्गोट

2
इसी तरह का सवाल एसओ पर 2009 से पूछा गया था, देखें stackoverflow.com/questions/1350044/… IMHO लगभग हर दिया गया जवाब आज भी मान्य है।
डॉक्टर ब्राउन

@ Oodb द्वारा साइमन, मेरा मतलब है ऑब्जेक्ट ओरिएंटेड डेटाबेस

1
@ साइमन: वर्सेंट एक ओडब है (मैंने दो अलग-अलग कंपनियों में उत्पादन में देखा है)।
जियोर्जियो

जवाबों:


11

इसके कई कारण हैं।

  1. कई डेवलपर्स केवल रिलेशनल डेटा मॉडलिंग में अनुभवी हैं। OO डेटाबेस का उपयोग करने के लिए, उन्हें मॉडल के बारे में पूरी तरह से सीखने और डेटा के बारे में सोचने की आवश्यकता होगी। यह या तो वास्तव में कठिन है या काफी समय लेने वाला है।
  2. संबंधपरक DBs के पास परिपक्व होने के लिए बहुत समय था। यहां तक ​​कि मुक्त संबंधपरक डीबी में उन्नत अनुकूलन और अनुक्रमण तकनीकें हैं। साथ ही, रिलेशनल डेटा स्टोर करना और इंडेक्स करना आसान है। OO डेटाबेस के बारे में एक ही बात नहीं कही जा सकती।
  3. जब संबंधपरक और OO मॉडल उभरने लगे। रिलेशनल के पास बहुत बड़ा किनारा था जो गणितीय रूप से "सही" था और डेटा को बचाने और क्वेरी करने के लिए यह मानक था। OO के पास कुछ भी नहीं था।
  4. [अटकलें] कई बड़े खिलाड़ी अपने संबंधपरक डीबी बनाने में बहुत सारे संसाधन लगाते हैं। इसके बजाय OO DBs का समर्थन करना उल्टा होगा। इसके बजाय उनमें से कई ने ओओ के सिद्धांतों को संबंधपरक मॉडल में एकीकृत करने के लिए निवेश किया, जिससे अधिकांश वर्तमान डीबी तथाकथित ऑब्जेक्ट-रिलेशनल हो गए। IMO ये मॉडल शुद्ध संबंधपरक या शुद्ध OO से भी खराब हैं। [/ अटकल]
  5. [शेख़ी] ध्यान देने वाली अंतिम बात यह है कि कई डेवलपर्स वास्तव में मॉडल डेटा के लिए OO तरीका नहीं समझते हैं। यह आमतौर पर सबोप्टिमल, एनीमिक मॉडल के परिणामस्वरूप होता है। इतनी सारी विकास कंपनियां, जो सस्ते और अनुभवहीन डेवलपर्स पर भरोसा करती हैं, बल्कि सरल, संबंधपरक मॉडल का चयन करेंगी, जो कि सभी सीएस कॉलेजों में कठिन और अप्रमाणित OO aproach से सिखाया जाता है। [/ rant]

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

@ तातार वर्ग पदानुक्रम को गड़बड़ कर रहा है जो OO में अधिकांश डेवलपर्स के लिए आदर्श है।
बेंट

10

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

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

ज्यादातर मामलों में आधुनिक-दिन NoSQL समाधान वास्तव में OODBMS की ओर एक कदम नहीं हैं। उनमें से कई अभी भी संबंधपरक हैं, केवल छीन लिए गए हैं JOINs। उनमें से कुछ वास्तव में वस्तु भंडार हैं, लेकिन वास्तव में OODBMS नहीं हैं, क्योंकि वे वस्तुओं के बीच संबंधों के बारे में नहीं जानते हैं।

फिर भी OODBMS के लिए इतना मजबूत धक्का नहीं है एक और कारण यह है कि "गरीब आदमी का OODBMS" समाधान है - ORMs। इसने बहुत लोकप्रियता हासिल की है, क्योंकि वे प्रसिद्ध, स्थिर और परीक्षण किए गए डीबी इंजनों द्वारा समर्थित हैं, फिर भी वे वस्तुओं को मैपिंग प्रदान करते हैं। बेशक, ये सही OODBs नहीं हैं।


"फिर भी OODBMS के लिए इतना मजबूत धक्का क्यों नहीं है, इसका एक और कारण" गरीब-आदमी का OODBMS "समाधान है - ORMs।": बहुत अच्छी बात! +1।
जियोर्जियो

यह सच नहीं है। MUMPS को 1966 में डिज़ाइन किया गया था और 1974 तक, सिस्टम R को विकसित करने के लिए IBM द्वारा पहला शोध प्रोजेक्ट शुरू किया गया था, जो कि दुनिया का पहला RDBMS है। ओरेकल ने केवल 1979 में अपना विश्व-पहला वाणिज्यिक-ग्रेड आरडीबीएम जारी किया, उसी वर्ष जब इंटरसिस्टम एम प्रकाश में आया था। सवाल यह है कि उसके बाद क्या हुआ। इसका उत्तर शायद यह है कि ODBMSes को रिपोर्ट करने के लिए अनुकूलित नहीं किया गया था, जबकि LOB अनुप्रयोगों के अधिकांश उपयोग-मामलों में रीड के प्रति भारी पठन-पाठन असंतुलन है।
एलेक्सी जिमेरेव

-2

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


2
डेटा लगभग कभी भी सरल नहीं होता है, और मुझे लगता है कि आप यह समझाने में विफल हैं कि OODB अधिक लोकप्रिय क्यों नहीं है क्योंकि आखिरकार ORM बहुत अच्छा कर रहा है।
ताजरत
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.