2011-01-09 6 views
1

私のアプリケーションは、さまざまなベンダーのXMLデータを使用します。 ベンダーはすべてXML形式/スキーマが異なり、これらのXMLからさまざまなデータを取得するためにカスタムクエリが必要です。XMLデータベースの評価

ベンダーから特定のXMLを取得した後、私はXMLを解析/クエリし、いくつかのテーブルでデータを書きます(Woodstock StAXパーサを使用)。しかし、RDBMS(固定スキーマ)の性質上、さまざまなベンダーのすべてのXMLフォーマットをサポートすることはできません。たとえそれがあっても、階層型XMLをRDBMS固定スキーマのリレーショナルデータに「正規化」する必要があります。

ベンダーからのxml/dataは毎日頻繁に更新され、サイズは数kbsから50 MBのデータファイルまでさまざまです。

これは私の目的であるかどうかを確認する次のステップとして、さまざまなNXD(ネイティブXMLデータベース)、eXist-db、Sedna、BaseX、MonetDBを評価しています。

これを解決する方法について、実用的なアドバイスをお願いしますか?または異なるフォーマット/スキーマのXMLデータを多数処理する同様のシステムを構築しています。ここで

は私が答えることをしようとしているコアXMLの要件は次のとおりです。

  • は、複数のソースから、複数のXMLデータ・ファイルを処理します。 XMLはベンダーごとに異なります。
  • DB内の既存のXMLの一部のフィールドだけでなく、ドキュメント全体のXML更新。
  • それが特定のベンダーから提供されているかどうかを確認し、それに従ってクエリを実行します。
  • これらのxmlにXPath/XQueryを使用して照会すると、データが読み取られ、共通のビューでユーザーに表示されます。

お願いします。

ありがとう、 Subhro。

答えて

0

SQL Server Integration Services(SSIS)と統合ツールとしてSQL Serverをデータベースとして使用します。

SQL Serverは、ネイティブ形式のXML列をサポートしています。 XMLはスキーマまたはスキーマのセットに従う必要があり、XQueryを使用してXMLを処理できます。同時に、ベンダーからベンダーまで同じXMLの部分をテーブルに分解することができます。

XMLをXMLインデックスでインデックスすることもできます。これにより、クエリを高速化できます。

SSISを使用すると、異なるディスクドロップやFTPやWebサービスからさまざまなXMLファイルを収集し、追加の前処理をしてもしなくてもデータベースに処理できます。たとえば、さまざまなXMLフォーマットをある程度合理化して、大部分のデータを通常のリレーショナル表に保管しながら、残りの(または文書全体)を後続の照会のために同じデータベースに保管することができます。

OBTW、SSISはSQL Serverで無料です。

2

SQLサーバーなどのハイブリッド型データベースではなく、ネイティブXMLデータベースを使用するのは間違いありません。ハイブリッド・データベースは、それほど多くのことをしているため、XQueryおよびXQueryの更新の準拠した実装などのコアXML機能を提供するのに、しばしば時間がかかります。さまざまな方法でデータを保存することができれば、開発者の管理を困難にする可能性があります。

どの製品については、ここには本当の問題があります。データベース製品の評価は高価なプロセスであり、意味のある回答を得るには十分に徹底的に行うことは間違った選択をするよりもコストがかかるでしょう。データベースプロジェクトが失敗したときは、通常はデータベースソフトウェアが不足しているためではなく、選択したデータベースソフトウェアを最大限活用するためのスキルと経験が欠けていたためです。だから私はあなたに利用できるスキルに基づいて製品を選ぶと言うでしょう。