对于我的项目,我有一个关系数据库.我的关系数据库架构经常发生变化.所以最近我将所有关系数据库表数据存储到一个大的RDF表中.表存储数据为三元组.它有三列Subject,Predicate,Object.以下是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,那么我是否需要以XML格式存储我的RDF三元组,或者我当前的格式是否正常?我如何使用Jena工具?使用图形数据库而不是Oracle DB也会有帮助吗?如果是,那么选择哪一个?
Jena有两个适用于此的存储层:SDB,它使用SQL数据库,TDB是本机存储. TDB更快. SDB使用它自己的架构来存储RDF.
您还可以使用Oracle赢得的RDf存储(具有jena接口).
您不会在任何这些方法中为RDf存储XML – 它被解析并使用高效存储.