2011-10-28 15 views
5

डेटाबेस में नवीनतम सनकी गैर-संबंधपरक डेटाबेस के आसपास केंद्रित है। क्यूं कर? यह तरह का प्रतिकूल प्रतीत होता है। उदाहरण के लिए, यह मेरे लिए और अधिक समझ में आता है (टेबल के लिए Django + एसक्यूएल में उदाहरण कोड) एक संबंधपरक तरह से अपने डेटा को व्यक्त करने के:मैं एक गैर-संबंधपरक डेटाबेस का उपयोग क्यों करना चाहूंगा?

एसक्यूएल:

create table post (id int primary key auto_increment, 
     name varchar, 
     created datetime); 

create table comment(id int primary key auto_increment, 
     text text, 
     post_id int, 
     created datetime, 
     foreign key post_id references post(id)); 

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

यह वास्तव में मोंगोडीबी जैसे गैर-रिलेशनल डेटाबेस का उपयोग करने के लिए प्रदर्शन को प्रभावित करने के लिए प्रतीत होता है क्योंकि आप जो भी न्यूनतम रूप से चाहते हैं उसके बजाए आप तुरंत एक संपूर्ण ऑब्जेक्ट ग्राफ़ ले लेंगे।

क्या कोई मुझे बता सकता है कि गैर-रिलेशनल डेटाबेस का उपयोग करने के क्या फायदे हैं?

+0

http://stackoverflow.com/questions/441441/why-should-i-use-document-based-डेटा-instead-of-relational-डेटाबेस – hplbsh

उत्तर

5

CAP Theorem

पर एक नजर डालें और PACELC interpretation

संबंधपरक डेटाबेस व्यापार गत का एक सेट बना देती हैं, और गैर संबंधपरक व्यापार गत का एक अलग सेट बना देती हैं। बड़े पैमाने पर वितरित डेटासेट के लिए, गैर-रिलेशनल कभी-कभी अधिक समझ में आता है।

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

अंत में, यह आपके विशेष उपयोग-मामले के लिए व्यापार-बंद का उचित सेट बनाने के बारे में है। NoSQL पर