ORM और ODM में क्या अंतर है?


158

मैं यह पता लगाने की कोशिश कर रहा हूं कि ORM और ODM के बीच क्या अंतर है, जहां तक ​​मैं अवधारणा को समझता हूं, ORM (ऑब्जेक्ट रिलेशनल मैपर) डेटा के बीच संबंधों को मैप करता है, जहां ODM (ऑब्जेक्ट डॉक्यूमेंट मैपर) दस्तावेजों के साथ काम करता है। क्या मैं यह मानने में सही हूं कि mySQL ORM का एक उदाहरण है और MongoDB ODM का एक उदाहरण है?

जैसा कि मुझे यकीन है कि आप देख सकते हैं, मैं अवधारणा के सिद्धांत से बहुत परिचित नहीं हूं। क्या कोई कृपया दोनों के बीच के मतभेदों को स्पष्ट कर सकता है?

जवाबों:


173

MySQL एक रिलेशनल डेटाबेस का एक उदाहरण है - आप कोड में अपनी वस्तुओं और डेटा के रिलेशनल प्रतिनिधित्व के बीच अनुवाद करने के लिए ORM का उपयोग करेंगे।

ORM के उदाहरण nHibernate , Entity Framework , Dapper और अधिक हैं ...

MongoDB एक दस्तावेज़ डेटाबेस का एक उदाहरण है - आप कोड में अपनी वस्तुओं और डेटा के दस्तावेज़ प्रतिनिधित्व (यदि आवश्यक हो) के बीच अनुवाद करने के लिए एक ODM का उपयोग करेंगे।

मांडंगो MongoDB के लिए एक ODM का एक उदाहरण है।


8
आपके पास हाइब्रिड ORM / ODM फ्रेमवर्क हो सकते हैं, जैसे डेल्फी के लिए MORMot , PHP के लिए Doctrine या जावा के लिए Hibernate OGM । और कुछ SQL डेटाबेस में दस्तावेज़ों के लिए मजबूत समर्थन होता है, जैसे कि महान PostgresSQL जिसमें JSON या JSONB डेटा प्रकार शामिल होते हैं ताकि आप अनुक्रमित और उन्नत क्वेरी सहित RDBMS और दस्तावेज़-उन्मुख संग्रहण को एक ही तालिका में मिला सकें!
अरनौद बुचेज़

तो आप कह रहे हैं कि दस्तावेज़ दस्तावेज़ हैं ... जो समझ में आता है!
HashRocketSyntax

mongoose एक ODM या ORM है?
YL

1
mongoose, mongoid सभी ODM के हैं। मैं एक noSQL के लिए लगता है कि हम केवल ODMs कर सकते हैं।
लूना लवगूड

29

एक ओआरएम एक ऑब्जेक्ट मॉडल और एक रिलेशनल डेटाबेस के बीच मैप करता है। ऑब्जेक्ट मॉडल और दस्तावेज़ डेटाबेस के बीच एक ODM मैप्स। MySQL एक ORM नहीं है, यह एक संबंधपरक डेटाबेस है, विशेष रूप से, SQL डेटाबेस। MongoDB एक ODM नहीं है, यह एक दस्तावेज़ डेटाबेस है।


महान व्याख्या! मैं अभी भी स्पष्ट नहीं हूं कि क्या ODM / ORM अंतर्निहित डेटाबेस या ड्राइवर पुस्तकालयों द्वारा प्रदान की गई अमूर्त परतें हैं, या क्या वे ड्राइवर और DB के बीच एक अलग परत हैं? क्या दस्तावेज़ डेटाबेस के लिए ORM ड्राइवर हो सकता है और इसके विपरीत?
पोइया 13

10

स्पष्ट रूप से, एक ORM SQL डेटाबेस ड्रायवर जैसे ODBC, JDBC या OLEDB का उपयोग करके ऑब्जेक्ट संकेतन को रिलेशनल नोटेशन में ट्रांसलेट करता है और एक ODM JSON या JSONB एपीआई का उपयोग करके ऑब्जेक्ट नोटेशन को डॉक्यूमेंट नोटेशन में ट्रांसलेट करता है।

हुड के तहत विभिन्न प्रकार के कार्यान्वयन हैं।

PS: JSONB एक JSON टेक्स्ट डॉक्यूमेंट नोटेशन है, जो MongoDB द्वारा उपयोग किए गए द्विआधारी प्रारूप में संग्रहीत है।


1
तकनीकी रूप से, ODBC annd JDBC API विनिर्देशन हैं जो एक ड्राइवर को लागू करते हैं।
19:02 को

2
Postgres JSONB
Luna

2

MongoDB, MongoDB के लिए ODM (ऑब्जेक्ट डेटा मॉडल) का एक अच्छा उदाहरण है जिसमें आप सीधे ऑब्जेक्ट्स के साथ ऑपरेशन कर सकते हैं और जो उपयुक्त क्वेरी और स्कीमा में अनुवादित हो जाता है। यह यहाँ पाया जा सकता है https://mongoosejs.com/ पर

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