2009-06-08 26 views
10

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

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

+4

खुद से पूछें कि आप XML पर विचार क्यों कर रहे हैं। वह आपको क्या खरीदता है? – Apocalisp

उत्तर

4

आपका व्यायाम उदाहरण कई मायनों में तैयार किया जा सकता है। कुछ अनुभव और जब एक्सएमएल के श्रेणीबद्ध मॉडल एक फायदा चलता के सवाल पर ज्ञान के लिए, रॉन Burrett पढ़ें:

http://www.rpbourret.com/xml/XMLAndDatabases.htm

मामलों में जहां देशी एक्सएमएल डीबीएस RDBs की भारी लाभ दिखाने रहे हैं जब सामग्री संग्रहीत करने के लिए अर्ध है -structured। @ एसएमओटी, एसडीबी में ग्राहक-अनुबंध-ग्राहक डेटा को स्टोर करना आसान और सुरक्षित है - लेकिन जब आपको अनुबंध को स्टोर करना पड़ता है तो क्या होता है?

RDF दोनों संबंधपरक मॉडल के साथ और xml मॉडल के विपरीत है। आरडीएफ को डेटा के "खुले दुनिया" के प्रतिनिधित्व के लिए डिज़ाइन किया गया है जिसमें आप कभी भी यह सुनिश्चित नहीं कर सकते कि आप गणना करने के समय सबकुछ जानते हैं। तथ्य यह है कि आरडीएफ एक्सएमएल में व्यक्त किया जा सकता है सुविधाजनक, लेकिन आकस्मिक है। इसमें अन्य अभिव्यक्तियां भी हैं।

रूप में अच्छी तरह ईएमसी एक्सएमएल प्रौद्योगिकियों और MarkLogic पर कुछ पढ़ने मत करो।

2

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

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

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

इस अभ्यास की तरह स्थितियों के साथ, मैं कुछ मॉडलिंग का उपयोग कर एक साधारण एक्सएमएल स्कीमा बनाकर शुरू करूंगा एक्सएमएल के लिए उपकरण। (Altova's XMLSpy इस पर अच्छा है।) जब मुझे लगता है कि मेरा डेटा इस एक्सएसडी में अच्छी तरह से फिट होगा, तो मैं डेटाबेस बनाना शुरू करता हूं, जहां प्रत्येक तत्व को तालिका में परिवर्तित किया जाएगा। नतीजतन, मेरे पास एक अच्छा, रिलेशनल डेटाबेस और एक एक्सएमएल प्रारूप के लिए कुछ परिभाषा होगी जिसका उपयोग डाटाबेस से/उसी डेटा को आयात/निर्यात करने के लिए किया जा सकता है।

+0

असल में, मैं जो कह रहा हूं वह एक्सएमएल में मॉडलिंग शुरू कर रहा है। जब आप इससे खुश होते हैं, तो उसे डेटाबेस में परिवर्तित करें। –

1

"उपरोक्त में से कोई नहीं" के बारे में कैसे?

मैं पहले NORMA जैसे वैचारिक मॉडलिंग टूल का उपयोग कर डोमेन का मॉडल करूंगा। यह आपको समाप्त होने तक मॉडल पर ध्यान केंद्रित करने की अनुमति देगा। उस बिंदु पर, नोर्मा कई लोकप्रिय डेटाबेस के साथ-साथ एक एक्सएमएल स्कीमा के लिए डीडीएल उत्पन्न कर सकता है।

12

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

सभी उन कमियों अंततः संबंधपरक मॉडल के आविष्कार के लिए मार्ग प्रशस्त किया।

तो यदि आप जानना चाहते हैं कि XML किसी भी डेटा प्रबंधन समस्या के समाधान के रूप में उपयुक्त है या नहीं, तो खुद से यह पूछें: "क्या एक्सएमएल पदानुक्रमित प्रकृति है या नहीं?"।

बाजार में एक्सएमएल की सफलता केवल अवलोकन की सत्यता की कि "जो लोग इतिहास नहीं जानता कि यह दोहराने के लिए अभिशप्त हैं" साबित होता है।

+0

+1 अच्छा ऐतिहासिक दृश्य – KLE

+4

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

2

आपका कसरत उदाहरण एक अच्छा है, लेकिन मुझे लगता है कि आप गलत नतीजे पर पहुंचें।

मेरे सोच है कि जटिलता (और संभव जटिलता मैं अभी तक के बारे में सोचना है कि) जो इस सबसे अच्छा एक्सएमएल का उपयोग कर मॉडलिंग की जाएगी की वजह से।

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

एक्सएमएल संभावित समय पर अधिक लचीला हो सकता है यदि आपको सख्त स्कीमा की आवश्यकता नहीं है और आप बस कुछ भी स्टोर करने में सक्षम होना चाहते हैं। लेकिन फिर हम वास्तव में मॉडलिंग के बारे में बात नहीं कर रहे हैं।

संबंधित मुद्दे