質問

どうやら、BDB-XMLは少なくとも2003年以来存在していますが、私は最近Oracleのウェブサイトでつまずいたのです。 バークレーDB XML. 。これが宣伝文句です:

Oracle Berkeley DB XMLは、コンテナに保存され、コンテンツに基づいてインデックスが付けられたドキュメントにXqueryベースのアクセスを備えたオープンソースの組み込み可能なXMLデータベースです。 Oracle Berkeley DB XMLは、Oracle Berkeley DBの上に構築されており、その豊富な特徴と属性を継承しています。 Oracle Berkeley DBのように、それは人間の投与を必要とせずにアプリケーションで処理されています。 Oracle Berkeley DB XMLは、Oracle Berkeley DBの上にドキュメントパーサー、XML Indencer、Xqueryエンジンを追加して、最速で最も効率的なデータの取得を可能にします。

私にとっては、根本的なアイデアは技術的に健全であり、おそらくCouchDBやMongodbなどの新しいドキュメントベースのDBよりも成熟しているようです。私が決定できる限り、C、C ++、Ruby、Perlのサポートがあります。自動選挙でマスター/スレーブモデルを使用した自動レプリケーションのようなHAキャピリティもあります。

しかし、私はそれを使用するプロジェクトを見つけることができないようです。根本的に問題がありますか?ライセンスは面倒ですか?複雑すぎますか?

なぜ使用されていないのですか?

役に立ちましたか?

解決

私はOracleのBerkeley DB Productsのプロダクトマネージャーでした。私はこれらのBDBデータベースに8年以上取り組んできましたが、質問にコピーした「ぼやけ」を書きました。

商業的に使用されます(私の頭の上部のすぐ外側の網羅的なリスト):-AutodeskはMapQuestでBDB XMLを使用します-FareLogixは予約システムにBDB XMLを使用します-Starwood HotelsはBDB XMLを使用して、管理するプロパティに関する情報を管理します-Juniper NetworksはNetscreen Security ManagerでBDB XMLを使用しています - 契約制限のために名前を付けられないものが多く...など...

Berkeley DB XMLは、オープンソースの世界で比較的無視されています。なぜ私にはわからないのですか。ここにはいくつかのプロジェクトがあり、それを使用していますが、私が知っていることは何もありません。私は最近見ました 気の利いたブログ投稿 EMACS内からBDB XMLを使用する方法について。セットアップしたら、テキストエディター内でXMLを介してインタラクティブにXqueryステートメントを実行できます。とはいえ、それは商業的およびオープンソースの使用に非常に実行可能です。

XQillaは、長年にわたって一緒に編まれた他のいくつかのXMLプロジェクトからBDB XMLエンジニアによって作成されたプロジェクトです。 Sourced(Apache 2.0ライセンス)Xqillaは、素晴らしいXqueryとXML解析ライブラリであるため、XQillaを開きます。私たちはデータベース企業ですので、XMLが解析されてBTreeデータベースに整理された後にXMLを使用するピース、およびクエリの最適化、インデックス、統計、および他の大量のコードの作業はXqillaの下にありますが、 BDBのBDBの上に2つを接着してBDB XMLに接着します。問題を解決する場合は、これらのデータベースがまったくない場合は、自由に使用してください。

XMLのゼロから構築された製品には、一般に、ディスク上の情報を管理するコアにいくつかのトランザクションデータ構造があります。バークレーDBでまだ行っておらず、バークレーDB XMLで使用していない最適化はあまりありません。 XMLを管理するためにゼロから構築されたデータベースがBDB XMLよりも大幅に優れていると言うことは、Berkeley DBに何かが欠けていると言っていると言っているので、ここに防御可能な議論があるとは思いませんが、私は喜んで学ぶことを望んでいます。誰かが、BDBがまだ実装していない効率的なXMLストレージに重要な同時のトランザクションデータ構造に関する情報を持っています。

存在するのはJava XMLデータベースです。必要に応じてJava JNI APIがあり、パフォーマンス、安定性、スケーラビリティテストでパンツを打ち負かします。

Sednaは優れたXMLデータベースです。Apache2.0なので、それは単なるフロスソフトウェアであるデュアルライセンスではありません。 BDB XMLに対してベンチマークすることをお勧めします。驚くかもしれません。

MarkLogicは優れたXML/XQueryデータベースサーバーであり、非常に堅実な製品を構築しています。ソフトウェアライブラリではなく、サーバーです。 BDB XMLとMarkLogicには大きな違いがありますが、どちらも市販されています。BDBXMLのみがオープンソースです。

誰かがXMLデータベースの状態に関するElliot Rusty Haroldのブログについて言及しました。2007年頃に注意してください。NoSQLデータベースが存在する前はそうではありませんか? ;-)

Kimbro Staken'sをご覧ください 古いが、それでも関連性のあるレビュー (Oracleのホワイトペーパーになりました)、それは良いですが、時代遅れです。 「XMLデータにネイティブXMLデータベースを使用してください:XQueryベースのネイティブXMLデータベースがSQLデータベースよりも優れていることを決定する」

長年にわたる本当の権威がありました Ron Bourrett. 。彼はこの主題について多くのことを言っています。

MongoDBとCouchDBは、異なる市場セグメントにあります。彼らは配布され、分割され、最終的に一貫した基本スタイル(非酸)データ管理を行い、彼らがそれを非常にうまくやっていると思う人もいます。彼らは若いと思います、ju審員はまだ出ていません。彼らは良いスタートを切っています。彼らが成長し続けることを願っています。データストレージは正しいことであり、1つのサイズがすべての人の問題/ニーズに合わないことを願っています。 BDB XMLの分散ストーリーは、シングルマスター、マルチレプリカに基づいて構築されています。データは分割されません。すべてのノードには同じデータ(データベース全体)が含まれています。私たちはどこにでも書くことを許可していません。 TCP/IP以上のレプリケーションをサポートします(ヘック、必要に応じてハードウェアバスのカスタムをサーバーに使用できます)。読み取りスケーラビリティ、システムの可用性、断層トレランスを解決するために、HA製品を構築しました。 NOSQLの分散システムは、Partitioned Data Managementを作成するように設計されています。選択は良いですよね? :)

XMLとしてのXMLとしてのXMLは、XMLコンテンツにアクセスおよび管理するための言語としての言語として、非常に成功したソリューションであり続けています。最近のNOSQLソリューションを使用しているより多くの公開Webサイトではそれほどではないかもしれませんが(これは私にとっては問題ありません)、ドキュメント管理、金融、ゲノミクス、バイオインフォマティック、データ交換、メッセージングなどではそうです。 XMLは、SQL/リレーショナル製品と比較するとニッチデータベースになる可能性がありますが、オブジェクトデータベースまたはブロックNOSQLデータベースソリューションの新しいKIDよりもはるかに成功しています。すべてのストレージソリューションにはその場所があり、XMLは将来的に有用なことを続けます。

一日の終わりに、あなたがあなたのニーズに合ったデータベースを選ぶことを願っています。

他のヒント

留意すべきことの1つは、バークレーDBのライセンスです。プロジェクトをオープンソースにしようとしない限り、Oracleからライセンスを購入する必要があります。そのため、これ以上見ないのではないかと思います。バークレーDBデータベースはすべて非常に優れています。私は(ハウスプロジェクトで)配布しないものに使用する傾向があります。

私の経験から、Berkeley DB XMLには多くの約束があり、多くの関連するユースケースがあります。ただし、すべての場合に機能することを期待しないように注意する必要があります。最後のリリースは、2009年12月22日のバークレーDB XML 2.5.16でした。

バークレーDBに基づいているテクノロジーは、ユースケース用に正しく構成すると、非常に堅牢で目がくらむほど高速です。正しい詳細があります(たとえば、トランザクション、ロギング、MVCCを機能させるために必要なすべてのフラグの理解)。この複雑さのために、大多数の人々に問題があると思います。

しかし、私は他のいくつかの欠点に遭遇しました。最大のものは、クエリプランナーがソート時にインデックスを使用しないことです。これは、以下に相当するかなり一般的なデータアクセスパターンを実行できないことを意味します。

SELECT * FROM table ORDER BY time DESC LIMIT 100;

これを行うと、バークレー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からのものです。 expectDBは、牽引力を得ているように見えるOpenSourceのものです。

これは、卓越したXMLグルの1つであるエリオットラスティハロルドによるこのテーマに関する優れた記事です。http://cafe.elharo.com/xml/the-state-of-native-xml-database/

最高の[*] XMLリポジトリは、XMLをサポートするためにゼロから構築されたものです。 MarkLogic また 存在.

ただし、BDB-XMLのストレージエンジンは、最も広範囲の埋め込みデータベースエンジンの1つであるVenerable Berkeley DB Engineです。小さく、迅速で安定しています。

BDB-XML それ自体は確かに有能な製品です。以前はSleepycatという名前で販売されていましたが、参照を見つけるのに役立ちます。これは、BDBストレージエンジンと xqilla XQueryエンジン。

また、より多くの情報が検索されることもあります xqilla. 。それはかなり強力なエンジンであり、まだオープンソースです。

*]もちろん、「最高」、主観的な用語です。

したがって、結論として、これらはすべてBDB-XMLが広く使用されていないように見える理由です。

  • 組み込みのローカルデータベースのみを許可します(ただし、マスタースレーブレプリケーションを行うための規定があります)
  • 商業用に無料ではありません
  • XMLをサポートするためにゼロから構築された多くの競合製品

それを使用しない理由はないようですが、同様に競争から際立たせることはあまりありません。それに加えて、最近の競争には「ああ、光沢!」アピールとXMLデータベース自体は、依然としてニッチ市場です。

私は最近同じことをしていて、 sedna xml DBMS。

「根本的に間違っていることはありますか?」

はい。 XMLです。

そして残念ながら、それを発明した人は、たとえば関係代数やリレーショナル計算など、すでに既存の概念や技術の力を見ることを気にしなかったことを意味します。

それらよりもうまくやっていることは、些細な仕事ではありません(そしてそれは丁寧にそれを置いています)。

それはあなたに何かを言うべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top