假设我有大量的异构JSON文档(即命名的键值映射)和这些文档附加到的类的层次结构(即命名集).我需要设置一个允许以下内容的数据结构:
JSON文档上的CRUD操作.
很快就能通过ID检索JSON文档.
检索所有附加到某个类的JSON文档非常快.
编辑类层次结构:添加/删除类,重新排列它们.
我最初提出了将JSON文档存储在面向文档的数据库(如CouchDB或MongoDB)中并将类层次结构存储在RDF存储(如4store)中的想法.1
,2
并4
随后想通了自然,并3
通过保持附加文档ID列表中存储的每个类解决.
但后来我认为RDF存储实际上可以通过ID检索JSON文档的文档导向部分.乍一看这似乎是真的,但我仍然关心2
和3
.是否有一个RDF存储能够以速度面向文档的db的服务文档检索文档(节点)?它的服务速度有多快3
?我听说过RDF存储缓慢,具体化问题等等.
是否有一个RDF存储也可以像ID那样随意检索对象,例如CouchDB?使用面向文档和RDF存储来存储,检索和编辑类似JSON的对象有什么区别?
您最初是为图形数据库(如Neo4j)提出此问题.这就是为什么我想添加一些笔记.
图形数据库使用节点(和关系)的集成索引,因此文档的根节点的快速初始查找是通过它(外部或图形索引)完成的
路径的图形索引(实际上是树的根)的附加内容可以建模为更干净,只是键值查找
如果您将文档建模为具有属性的节点树,则可以执行任何简单且复杂的CRUD操作(也是结构化的)
检索"类型"或"类"的所有文档可以再次通过索引(要键入的索引根节点)或图类别节点来完成
您可以将这些"类型或类"类别节点放入层次结构(或图形)中,然后可以使用通常的图形数据库API进行编辑
遍历图表可以使用遍历器 /集成图形查询语言(例如Neo4j的cypher)来完成
加载分层数据可以由自定义导入程序或更通用的子图导入程序(例如GEOFF)完成