2

CouchDBとネイティブ XML データベース ( eXistなど)以外に、非構造化データと半構造化データを格納およびクエリできるデータベースはどれですか?

私はさまざまな形式 (XML、JSON、YAML、CSV、いくつかのカスタム形式) で大量のデータを受け取ってきましたが、それらをマージして操作する必要がありますが、リレーショナル データベースでスキーマを開発するのは時間がかかり、困難です。

主に、オープンソース ソリューションを検討しています。また、いつかはこのデータを何らかの形で公開したいと考えています。

このすべてのデータを共通の形式に変換して操作するには、いくらかのオーバーヘッドがあることを理解しています。XML に関しては、良い選択肢がいくつかあります。eXist-db と BerkeleyDB-XML は、XQuery を適切にサポートしているようです。

また、CouchDB はまだかなり新しいものですが、そのシンプルな「ドキュメント」形式で有望に見えます。

私が調べた他の方法は、ZODB や db4o などの OODBMS です。いくつかの単純な解析スクリプトを作成し、結果のレコード オブジェクトを「そのまま」保存します。問題は、後でクエリを実行することです。OODBMS には、クエリ エンジンの良い歴史がないようです。

私が熱心ではないのは、「blob-in-relational-db」ソリューションです。ハックのように見え、データの進化、FT インデックス作成などを実際には許可していません。

私が遭遇していない他の解決策はありますか?

4

5 に答える 5

1

非常に一般的なものが必要な場合は、RDF ストアを使用できます。RDF を使用してグラフを作成すると、半構造化データの優れた抽象化になることがわかります。データに固有の構造をグラフに与えるだけです。これに関連して、「グラフ データベースの観点から RDF データを照会する」という論文(またはスライド) は、興味深い読み物になる可能性があります。

もっと簡単な方法は、 neo4jのようなグラフ データベースを使用して、グラフの抽象化をより直接的に処理することです。これはオープン ソース プロジェクトです (そして私はその一部です)。グラフ データベースは、OODB のようにデータを特定のアプリケーションに結び付けません。また、データを適合させる必要がある静的スキーマを使用する必要もありません。

于 2009-01-31T10:42:22.733 に答える
1

最新の RDBMS のほとんどは xml データ型をサポートしています。xml ドキュメントは、値からデータを取得するための XPath/XQuery を使用したテーブル フィールドの値であると考えてください。同様に、CLOB データ型を使用して、大きな文字ブロック (構造化されていないドキュメント) を表すことができます。その場合、Oracle、SQL Server などには、これらのフィールドでテキスト検索を実行するための拡張機能があります。

優れた点は、これらの半構造化/非構造化検索機能が SQL からアクセス可能な演算子として実装されているため、これらの検索の結果を構造化クエリとブレンドできることです。クライアント アプリを表す一貫したリレーショナルを維持します。いくつかのプロジェクトでは、Oracle DB 内にネイティブ xml データを格納し、標準の SQL ビューを使用してデータを構造化されたものとして投影しました。

于 2008-10-22T18:52:05.260 に答える
0

構造化されていないデータを実際に保存している場合、またはドキュメントの構造に基づいてインデックスを作成する予定がない場合は、 Luceneのような全文検索エンジンが価値があると思います。developerWorks には、 Lucene を使用した XML の処理に関する古い記事がありますが、参考になります。

于 2008-10-22T18:40:13.037 に答える
0

IBM DB2 バージョン 9 はPureXMLをサポートしています。

于 2008-10-22T19:13:14.780 に答える
-1

Microsoft SQL Server には、2005 年から XML 列タイプがあります。

于 2008-10-22T18:33:06.843 に答える