4

私のプロジェクトには、リレーショナルDBがあります。頻繁に私のリレーショナルDBスキーマが変更されています。そこで最近、すべてのリレーショナルデータベーステーブルのデータを1つの大きなRDFテーブルに格納しました。テーブルはデータをトリプルとして保存しました。これには、主語、述語、目的語の3つの列があります。以下は、RDFテーブルの例です。

Subject->Predicate->Object 

1->name->Center

1->description->sample description

1->data->measure

2->data->parameter

2->relation->1

テーブルをOracleに保存し、現在SQLを使用してDBをクエリしています。ただし、私のテーブルは非常に速く成長しており、多くのレコードとSQ​​Lクエリ処理に時間がかかります。近い将来、テーブルがさらに大きくなり、クエリ処理が非効率になると思います。ですから、私の懸念は効率についてです。

テーブルが非常に大きい場合でもDBのクエリにかかる時間を短縮するために、RDFトリプルを効率的に格納する方法を教えてください。

RDFデータベースとクエリ言語についてはよくわかりません。Oracle RDFテーブルを効率的にすることは可能ですか?人々がApacheJenaツールとSPARQL言語について話しているのを見ました。それは私の問題を解決しますか?Jenaを使用する場合、RDFトリプルをXML形式で保存する必要がありますか、それとも現在の形式で問題ありませんか?Jenaツールを使用するにはどうすればよいですか?また、Oracle DBの代わりにグラフデータベースを使用すると便利ですか?もしそうなら、どれを選ぶべきですか?

4

1 に答える 1

2

http://jena.apache.org/

Jenaには、ここで適用される2つのストレージレイヤーがあります。SQLデータベースを使用するSDBと、ネイティブストアであるTDBです。TDBの方が高速です。SDBは、独自のスキーマを使用してRDFを格納します。

Oracleが獲得したRDfストレージ(jenaインターフェースを備えている)も使用できます。

これらのアプローチのいずれにおいても、RDfのXMLを保存しません。これは解析され、効率的なストレージが使用されます。

于 2013-03-09T11:41:21.927 に答える