سؤال

على ما يبدو، كان BDB-XML موجودا منذ عام 2003 على الأقل، لكنني فقط تعثرت عليه مؤخرا على موقع أوراكل: بيركلي ديسم XML. وبعد إليك الضفيرة:

يعد Oracle Berkeley DB XML قاعدة بيانات XML مفتوحة ومضاحية XML مع الوصول المستندة إلى XQuery إلى المستندات المخزنة في الحاويات وفهرستها بناء على محتواها. بنيت Oracle Berkeley DB XML على رأس Oracle Berkeley DB وترث ميزاتها الغنية وسماتها. مثل Oracle Berkeley DB، يتم تشغيله في عملية مع التطبيق دون حاجة للإدارة البشرية. يضيف Oracle Berkeley DB XML محلل وثيقة ومحرك XML ومحرك XQuery على رأس Oracle Berkeley DB لتمكين أسرع واسترجاع البيانات الأكثر كفاءة من البيانات.

بالنسبة لي يبدو أن الأفكار الأساسية صحة تقنيا وربما أكثر نضجا من DBS على المستندات الأحدث مثل CouchDB أو MongoDB. لديها دعم ل C، C ++، RUBY و PERL، بقدر ما أستطيع تحديده. حتى لديها قدرات HA- مثل النسخ المتماثل التلقائي باستخدام نموذج ماجستير / عبدي مع الانتخابات التلقائية.

ومع ذلك، لا يبدو لي أن أجد أي مشاريع تستخدمه. هل هناك شيء خاطئ بشكل أساسي في ذلك؟ هل الترخيص مرهق للغاية؟ هل هو معقد للغاية؟

لماذا لا يتم استخدامها؟

هل كانت مفيدة؟

المحلول

اعتدت أن أكون مدير المنتج لمنتجات Berkeley DB في Oracle. لقد كنت حول العمل على قواعد بيانات BDB هذه لأكثر من ثماني سنوات، كتبت "Blurb" لقد نسخت في سؤالك.

تم استخدامنا تجاريا في قائمة غير شاملة، خارج الجزء العلوي من رأسي): - يستخدم Autodesk BDB XML في MapQuest - Farelogix يستخدم BDB XML لنظام الحجز - فنادق Starwood تستخدم BDB XML لإدارة معلومات حول الخصائص التي يديرونها - تستخدم شبكات العروق XML BDB XML في Netscreen Security Manager - لا أستطيع تحمل الاسم بسبب قيود العقود ... - وهلم جرا ...

تم تجاهل Berkeley DB XML نسبيا في عالم المصدر المفتوح، لماذا ليس لدي أي فكرة. هناك عدد قليل من المشاريع هنا وكان هناك استخدامها، لا شيء كل ما أعرفه. لقد رأيت مؤخرا وظيفة بلوق Nifty حول كيفية استخدام BDB XML من داخل Emacs. بمجرد الإعداد، يمكنك تشغيل عبارات XQuery عبر XML بشكل تفاعلي داخل محرر النصوص. ومع ذلك، فإنه قابل للتطبيق للغاية للاستخدام المصدر التجاري والمفتوح.

Xqilla هو مشروع تم إنشاؤه بواسطة مهندسي BDB XML من عدد قليل من مشاريع XML الأخرى التي كناها معا على مر السنين. نفتح مصادر (APACHE 2.0 رخصة) XQilla لأنها مكتبة تحليل XQUERY و XML رائعة. نحن شركة قاعدة بيانات، وبالتالي فإن القطعة التي تأخذ XML بعد تحليلها وتنظمها في قواعد بيانات BTREE الخاصة بنا وكذلك العمل على تحسين الاستعلام، الفهرسة والإحصائيات، والطوين الكل بأكمله هو ما يجلس تحت Xqilla ولكن فوق BDTB's BTREE الإلتصاق اثنين معا في BDB XML. لا تتردد في استخدامه إذا كان يحل مشكلتك، هذه قاعدة بيانات لا توجد على الإطلاق.

المنتج الذي تم بناؤه من الأرض لأجهزة XML عموما لديه عدد قليل من هياكل بيانات المعاملات في جوهرها الذي يدير المعلومات على القرص. لا يوجد الكثير من التحسين الذي يمكن القيام به لم نفعله بالفعل في بيركلي ديسيبل ويستخدم في بيركلي DB XML. ليقول أن قاعدة بيانات منية من الألف إلى الياء لإدارة XML ستكون أفضل بكثير من BDB XML يقول أن هناك شيء مفقود من بيركلي ديسيبل، لا أعتقد أن هناك حجة دبلية هنا ولكني على استعداد للتعلم إذا شخص ما لديه معلومات حول بنية بيانات متزامنة من المعاملات الحيوية لتخزين XML فعال لا ينفذ BDB بالفعل.

توجد قاعدة بيانات Java XML، لدينا API Java Jni إذا كنت ترغب في أن نتفوق على السراويل في الأداء والاستقرار وقابلية التوسع.

Sedna هي قاعدة بيانات XML جيدة، إنها Apache 2.0 لذلك فهي ليست ترخيص ثنائي الترخيص هو مجرد برنامج الخيط. أقترح عليك معيارها ضد BDB XML، قد تفاجأ.

MarkLogic هو خادم قاعدة بيانات XML / XMERY رائع، لقد بنى منتجا صلبا للغاية. إنها ليست مكتبة برامج، إنه خادم. هناك اختلافات كبيرة بين BDB XML و MarkLogic، لكنها متاحة تجاريا - فقط BDB XML هو مصدر مفتوح.

ذكر شخص ما بلوق إليوت صدئ هارولد على حالة قواعد بيانات XML، كن حذرا من حوالي عام 2007 - مهلا، أليس كذلك قبل أي قاعدة بيانات Nosql موجودة؟ ؛-)

ألق نظرة على كيمبرو ساحة قديم ولكن لا يزال المراجعة ذات الصلة (تحولت إلى Whitepaper بواسطة Oracle)، إنه جيد ولكن مؤرخة أيضا. "استخدم قاعدة بيانات XML الأصلية لبيانات XML الخاصة بك: تحديد متى تكون قاعدة بيانات XML الأصلية المستندة إلى XQuery أفضل من قاعدة بيانات SQL"

كانت السلطة الحقيقية على مر السنين رون بورريت. وبعد لديه الكثير ليقوله حول هذا الموضوع.

MongoDB و Couchdb في قطاع سوق مختلف. إنهم يقومون بتوزيعهم، مقسمة، إدارة بيانات الأساس (غير الحمضية) المستمرة في النهاية، ويعتقد البعض أنهم يفعلون ذلك جيدا. أعتقد أنهم صغار، والحقن لا تزال خارج. إنهم بعيدون عن بداية جيدة وآمل أن يستمروا في النمو، فإن تخزين البيانات هو شيء صعب أن يحصل على صواب وحجم واحد لا يناسب مشكلة / احتياجات الجميع. تم بناء قصة BDB XML الموزعة على ماجستير واحدة، متعددة النسخ المتماثلة دائما متسقة دائما (إذا كنت ترغب في ذلك) خوارزميات النسخ المتماثل القائمة على السجل والباكس من الباكسون عند فشل الماجستير. نحن لا نقسم البيانات، كل عقدة تحتوي على نفس البيانات (قاعدة البيانات بأكملها). نحن لا نسمح بالكتب في كل مكان، فقط في الماجستير. نحن ندعم أكثر من TCP / IP للنسخ المتماثل (هيك، يمكنك استخدام حافلة الأجهزة مخصصة إلى الخادم الخاص بك إذا كنت تريد). بنينا منتجنا HA لحل قابلية التوسع للقراءة وتوفر النظام والتسامح مع الخطأ. تم تصميم أنظمة NOSQL الموزعة للكتابة في أي مكان إدارة البيانات المقسمة. الاختيار جيد، أليس كذلك؟ :)

XML كخطيط بيانات و XQuery ككون لغة للوصول وإدارة محتوى XML كان ويستمر في أن يكون حل ناجح للغاية. ربما ليس كثيرا في مواقع الويب العامة التي تستخدم حلول NOSQL هذه الأيام (وهي جيدة، ومثيرة للاهتمام بالنسبة لي) ولكن أكثر من ذلك في إدارة المستندات والتمويل والجينوم والبيانات الحيوية وتبادل البيانات والمراسلة، وأكثر من ذلك بكثير. قد تكون XML قاعدة بيانات متخصصة عند مقارنة بمنتجات SQL / العلائقية ولكنها بالتأكيد أكثر نجاحا من قواعد بيانات الكائنات أو أي طفل جديد في محلول قاعدة بيانات كتلة NOSQL. كل حل تخزين له مكانه، سيستمر XML في القيام بأشياء مفيدة في المستقبل.

في نهاية اليوم، آمل أن تختار قاعدة بيانات تناسب احتياجاتك.

نصائح أخرى

شيء واحد يجب مراعاته هو رخصة بيركلي دي بي. ما لم تقم بفتح مصدر مشروعك، ستحتاج إلى شراء ترخيص من Oracle، وهذا هو السبب في أنني أظن أنك لا ترى المزيد منه. جميع قواعد بيانات Berkeley DB ممتازة تماما. أميل إلى استخدامها لأي شيء لن أقوم بتوزيعه (في مشاريع المنزل).

من تجربتي Berkeley DB XML لديه الكثير من الوعد والكثير من حالات الاستخدام ذات الصلة. ولكن يجب أن تكون حريصا على عدم توقعها للعمل في جميع الحالات. لاحظ أن الإصدار الأخير كان بيركلي DB XML 2.5.16 في 22 ديسمبر 2009.

التكنولوجيا التي تستند إليها، Berkeley DB، قوية للغاية وسريعة عمياء، إذا قمت بتكوينها بشكل صحيح لحالة استخدامك. هناك العديد من التفاصيل للحصول على اليمين (مثل تمكين المعاملات، والتسجيل، وفهم جميع الأعلام اللازمة للحصول على عمل MVCC). أعتقد أن غالبية الناس لديهم مشاكل بسبب هذا التعقيد.

لقد واجهت بعض أوجه القصور الأخرى رغم ذلك. أكبر واحد هو أن مخطط الاستعلام لن يستخدم الفهارس عند الفرز. هذا يعني أنه لا يمكنك القيام بنمط الوصول إلى البيانات الشائعة وهو ما يعادل:

SELECT * FROM table ORDER BY time DESC LIMIT 100;

إذا قمت بذلك، فسوف تحقق Berkeley DB من جميع قيم الوقت على القرص قبل الطلب، مما يجعلها بطيئة عندما تتجاوز عدد قليل من عشرات الآلاف من العقد. ذكر شخص آخر هذا أيضا هنا:

https://forums.oracle.com/forums/message.jspa؟messageid=9754987#9754987.

يمكنك تعداد أي فهارس مباشرة كذلك، ولكن بعد ذلك تفقد القدرة على القيام باستفسارات مخصصة.

تم الإبلاغ أيضا عن المنتديات هو بعض السلوك الغريب المتعلق بأنواع المؤشر والأداء:

https://forums.oracle.com/forums/message.jspa؟messageid=9753022#9753022.

لذلك، في حين أن الوصول القائم على أساس سريع وموثوق به، تكون حذرا من مخطط الاستعلام غير الناضج.

يعتمد على ما هي احتياجاتك. لن أوصي واحدة أصلية XML DB على آخر، لكن يمكنني أن أخبرك أن صناعة النشر هي مثال على قطاع كامل تم التخلي عنه كثيرا قواعد البيانات العلائقية وانتقلت وقتا كبيرا لقواعد بيانات XML الأصلية لمعالجة محتوى منشوراتهم وبعد الأبرز (والأكثر تكلفة) هو واحد من Marklogic. INAIDB هو OpenSource واحد يبدو أنه يحصل على بعض الجر.

فيما يلي مقالة ممتازة حول هذا الموضوع من قبل أحد المعلمين XML البارز، إليوت صدئ هارولد.http://cafe.elharo.com/xml/the-state-of-native-xml-databases/

أفضل مستودعات XML [*] هي تلك التي تم بناؤها من الألف إلى الياء لدعم XML، مثل marklogic. أو يخرج.

ومع ذلك، فإن محرك التخزين الخاص ب BDB-XML هو محرك Berkeley DB المؤجل، وهو واحد من أكثر محركات قاعدة البيانات المضمنة واسعة النطاق. انها صغيرة وسريعة ومستقرة.

BDB-XML نفسها بالتأكيد منتج قادر. تم بيعه سابقا تحت اسم Sleepycat، إذا كان ذلك يساعدك في العثور على أي مراجع. إنه مزيج من محرك تخزين BDB مع Xqilla. محرك xquery.

أيضا قد تجد المزيد من المعلومات البحث عن Xqilla.. وبعد إنه محرك قوي إلى حد ما، ولا يزال مفتوح المصدر.

*] "أفضل" بالطبع، كونها مصطلح شخصي.

لذلك في الختام، هذه هي جميع الأسباب التي تجعل BDB-XML لا يبدو مستعمل على نطاق واسع:

  • يسمح فقط بقواعد البيانات المحلية المدمجة (على الرغم من وجود أحكام للقيام بتكرار الرقيق الرئيسي)
  • ليس مجانا للاستخدام التجاري
  • العديد من المنتجات المنافسة التي تم بناؤها من الألف إلى الياء لدعم XML

لا يبدو أن هناك أي سبب لعدم استخدامه، ولكن وبالمثل ليس هناك الكثير مما يجعلها تبرز من المسابقة. علاوة على ذلك، فإن المنافسة الأخيرة لديها أكثر من "أوه، لامعة!" قواعد بيانات الاستئناف و XML أنفسهم لا يزالون سوقا متماسكة.

لقد كنت في الآونة الأخيرة في الآونة الأخيرة واتبرت عبر سيدنا XML DBMS.

"هل هناك شيء خاطئ بشكل أساسي في ذلك؟"

نعم. انها XML.

ولسوء الحظ، هذا يعني أن أولئك الذين اخترعوا أنه لم يهتم بإلقاء نظرة على قوة المفاهيم والتقنيات الموجودة بالفعل، ويقول، وعلائق الجبر والتحول الدراسي العلائقية.

إن القيام بأفضل من تلك ليست مهمة تافهة (وهذا وضعه بأدب)، والجميع الذي حاول حتى الآن فشل.

التي ينبغي أن أقول لك شيئا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top