2013-03-09 3 views
4

Для моего проекта у меня есть реляционная БД. Часто моя реляционная схема БД меняется. Так что недавно я сохранил все данные таблиц реляционных баз данных в одну большую таблицу RDF. Таблица хранит данные как тройной. Он имеет три столбца Subject, Predicate, Object. Ниже приведен пример таблицы RDF:Эффективное хранение и запрос триггеров RDF

Subject->Predicate->Object 

1->name->Center 

1->description->sample description 

1->data->measure 

2->data->parameter 

2->relation->1 

Я сохранил таблицу в Oracle и в настоящее время использует SQL для запроса БД. Однако моя таблица растет очень быстро, и у нее много записей и обработка запросов SQL, требующая времени. Я считаю, что в ближайшем будущем таблица будет расти больше, а обработка запросов будет неэффективной. Итак, моя забота об эффективности.

Не могли бы вы сообщить мне, как я могу эффективно хранить RDF, так что потребуется меньше времени на запрос БД, даже если таблица очень большая.

Я мало знаю о базе данных RDF и языке запросов. Возможно ли сделать таблицу Oracle RDF эффективной? Я видел, что люди говорят об инструменте Apache Jena и языке SPARQL. Будет ли это решить мою проблему? Если я использую Jena, тогда мне нужно сохранить тройку RDF в формате XML или мой текущий формат в порядке? Как я могу использовать инструмент Йены? Также будет полезно использовать базу данных графа вместо Oracle DB? Если да, то какой из них выбрать?

ответ

2

http://jena.apache.org/

Jena имеет два слоя хранения, которые применяются здесь: SDB, который использует базы данных SQL и TDB, родной магазин. TDB работает быстрее. SDB использует собственную схему для хранения RDF.

Вы также можете получить выигранное Oracle хранилище RDf (имеющее интерфейс jena).

Вы не храните XML для RDf в любом из этих подходов - он анализируется и используется эффективное хранилище.