2008-10-12 13 views
5

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

मैं समझता हूं कि मूल रूप से दो प्रकार के एक्सएमएल डेटाबेस हैं, जो पारंपरिक संबंधपरक डेटाबेस के शीर्ष पर एक्सएमएल समर्थन प्रदान करते हैं और जो "मूल" एक्सएमएल डेटाबेस हैं। यह देखते हुए कि मैं या तो उपयोग करने के लिए खुला हूं, आप क्या सलाह देंगे?

उत्तर

3

मैं आपको एक अच्छा उम्मीदवार नहीं दे सकता, लेकिन यदि आप खराब चुनने से बचना चाहते हैं, तो ओरेकल एक्सएमएलडीबी से बचें। यह नरक के रूप में धीमी और छोटी गाड़ी है। अपने डीबीएमएस में किए गए सबसे खराब विस्तार ओरेकल में से एक।

+0

धन्यवाद, मैं सिर्फ इस पर ध्यान देने गया था:

XQuery एक नया

डेमो क्वेरी डीबी 2 में xml डेटा क्वेरी करने के लिए उपयोग की गई भाषा है। –

1

उन लोगों के अनुसार जो इस पर काम करते हैं monetDB एक्सएमएल को संभालने में काफी सक्षम है। असल में, जब आप सामग्री पर xquery करना चाहते हैं, तो आप ऐसा कुछ करना चाहते हैं जो ठीक से ऐसा कर सके। एक एक्सएमएल दस्तावेज़ की संरचना जो बहुत लचीला और अनिश्चित लंबाई है, वह मूल रूप से rdbms की तुलना में अलग है। इसका मतलब है कि चीजों को सुरक्षित रूप से संग्रहीत और अनुक्रमित करने की आवश्यकता है। पारंपरिक डीबीएमएस सिस्टम के लिए यह एक्सएमएल को बीएलओबी (बाइनरी ऑब्जेक्ट) के रूप में स्टोर करने का एक आसान शॉर्टकट है। लेकिन बीएलओबी आमतौर पर अनुक्रमित नहीं होते हैं, और मुख्य रूप से प्राथमिक डेटा स्टोर के बाहर रहते हैं। एक्सएमएल को सही तरीके से पार्स करने के लिए सिस्टम को संग्रहीत करते समय एक्सएमएल में जाना चाहिए। मोनेट डीबी जाहिर है यह करता है।

6

माइक्रोसॉफ्ट एसक्यूएल सर्वर एक्सएमएल कॉलम के लिए समर्थन है। यह सिर्फ बीएलओबी/टेक्स्ट समर्थन से अधिक है।

आप एक्सएमएल कॉलम का उपयोग एक असंरचित तरीके से कर सकते हैं, जहां SQL सर्वर यह सुनिश्चित करेगा कि वे सही XML हैं। यह एसक्यूएल सर्वर के अंदर मनमानी एक्सएमएल दस्तावेजों के भंडारण की अनुमति देता है, लेकिन फिर भी यह सुनिश्चित करता है कि आप एक्सएमएल से निपट रहे हैं न कि केवल मनमानी बाइट्स/अक्षरों से। SQL सर्वर आपको XQuery का उपयोग करके इस पर शीर्ष पर क्वेरी करने देता है।

आप एक्सएमडी का उपयोग कर एक स्कीमा के अनुरूप एक्सएमएल कॉलम भी बना सकते हैं। अधिक दिलचस्प बात यह है कि एसक्यूएल सर्वर एक्सएमएल को अनुक्रमणित करने की इजाजत देता है ताकि आपके XPath प्रश्न अच्छी तरह से प्रदर्शन कर सकें।

अधिक जानकारी के लिए "What's New for XML in SQL Server 2008" देखें। (हालांकि अधिकांश एक्सएमएल समर्थन SQL सर्वर 2005 में मौजूद है।)

0

निश्चित रूप से XQuery का समर्थन करने वाले एमएस-एसक्यूएल, ओरेकल और अन्य मौजूदा सिस्टम को आज़माएं।

लेकिन, यदि एक्सएमएल-आधारित प्रश्नों की आपको आवश्यकता होगी, तो पहले से ही ज्ञात हो सकता है, एक्सएमएल को केवल बीएलओबी में स्टोर करना आसान हो सकता है, और प्रासंगिक XML तत्व की एक प्रति के साथ अनुक्रमित फ़ील्ड या दो जोड़ना आसान हो सकता है (रों)।

3

डीबी 2 9.x PureXML समर्थन के साथ एक संभावना है।

4

आप MarkLogic Server या eXist चेकआउट भी करना चाहेंगे।

यदि आपके पास मध्यम मात्रा में सामग्री (कुछ जीबी) है तो एक्स्टिस्ट करेगा। इसके अलावा आप शायद मार्कलोगिक में देखना चाहेंगे।

आप दोनों को डाउनलोड और जांच सकते हैं, क्योंकि ईएक्सिस्ट मुक्त है और मार्कलोगिक के पास आपके लिए खेलने के लिए एक समुदाय लाइसेंस है।

4

यदि आप मूल एक्सएमएल डीबी की तलाश में हैं, तो मैं निश्चित रूप से सेदना का सुझाव देता हूं। शानदार डेवलपर समर्थन भी।

1

डीबी 2 वाइपर से शुरू, आईबीएम डीबी 2 ने एक्सएमएल डेटा स्टोरेज के साथ-साथ एक्सएमएल डेटा पूछताछ के लिए देशी समर्थन प्रदान करना शुरू कर दिया।

डीबी 2 को एक्सएमएल और रिलेशनल डेटा तक पहुंच अनुकूलित करने के लिए डिज़ाइन किया गया है और ये क्षमताओं सी ++, .NET, COBOL, जावा और PHP के लिए उपलब्ध हैं।

create table person(name varchar(20), data xml); 

insert into person values('bane', XMLPARSE(DOCUMENT ' 
<person> 
<first-name>Tom</first-name> 
<last-name>Hardy</last-name> 
<mobile>89898989</mobile> 

</person> 
' STRIP WHITESPACE)) 


some simple xQueries 

SELECT * 
FROM googolplex.person 
WHERE xmlexists('$s[person/first-name="bane"]' PASSING person AS "s"); 
संबंधित मुद्दे