【问题标题】:What is the difference between triplestores and graph databases?三元存储和图形数据库有什么区别?
【发布时间】:2013-08-31 05:13:09
【问题描述】:
有三元存储(语义数据库),也有通用图数据库。
两者都基于通过关系将一个“项目”链接到另一个的类似概念。 Triplestore 支持 RDF 并由 SPARQL 查询,但此类附加组件也可以(并且正在)在通用图形数据库之上实现。
让您更喜欢语义数据库/三重存储而不是像 neo4j 这样的通用图形数据库的根本区别是什么?
【问题讨论】:
标签:
graph
neo4j
semantics
graph-databases
triplestore
【解决方案1】:
三元存储是图数据库。 RDF 是一个图。诚然,三重存储往往不会在内部将信息存储为图表。这对于查询回答来说是次优的,但它们仍然是图形数据库。
如果您对基于 W3C 标准的生态系统感兴趣,您会更喜欢 Neo4j。使与其他基于 RDF 的系统的互操作变得微不足道,并且使拿起所有东西并转移到不同的三重存储非常轻松。
【解决方案2】:
首先,所有数据结构都可以或多或少地被投射到任何底层存储引擎(甚至是您的文件系统和文本文件)中。选择某种数据模型和存储后端的原因是恕我直言:
- 您的开发和建模偏好
- 插入、存储和查询模型的预期运行时性能。
如前所述,RDBMS 和 TripleStore 在运行时往往在 JOIN 或 SparQL 遍历的“浅”遍历中很有用,并且在缓存或准备好的视图等方面做了大量工作。图数据库(唯一的 Neo4j)实际上将图结构向下到存储层并在节点记录级别上进行指针追踪(进行了一些优化)。因此,在遍历图时,您无需触及存储层以外的当前子图,从而能够在不触及整个图的情况下遍历部分数据,从而在许多有趣的场景中保持稳定的性能.