炒作图数据库...为什么?

ami*_*che 21 neo4j graph-databases orientdb rexster

围绕图形数据库有一些炒作.我想知道为什么.

在今天可以使用图形数据库解决的Web环境中,可以遇到的问题是什么?图形数据库是否适用于经典应用程序,即可以用作关系数据库的替代品吗?所以实际上这是两个问题.

相关: 有没有人使用基于图形的数据库(http://neo4j.org/)?

Bar*_*lly 21

图表的许多关系表示对于您可能想要执行的所有操作并不是特别有效.

例如,如果想要从边缘满足给定谓词的所有节点的连接集,从给定节点开始,在SQL中没有自然的方式来表达它.您可能要么使用谓词查询边缘,然后必须在本地排除断开的边缘,或者在迭代查询中跟随一组链接到数据库服务器之后与数据库服务器进行非常详细的对话.

图形不是关系数据库的一般替代品.RDB主要处理集合(表格),而图形主要是有趣的,因为互连的"形状".对于关系数据库,您可以跟随集合之间预定深度(固定数量的连接)的链接,逐步过滤和分组结果,而图形通常导航到任意和递归定义的深度(即不是预定数量的"连接") .你可以滥用任何一个来匹配另一个的特征,但它们会有不同的优势.

  • 当然; 但是必须在存储过程中编写即席查询可能会给您的风格带来压力. (3认同)
  • @finnw问题是无法做到,问题是效率和性能.要获得良好的读取性能,您必须牺牲插入性能并浪费大量磁盘空间.本文:http://www.codeproject.com/KB/database/Modeling_DAGs_on_SQL_DBs.aspx概述了如何使用插入的存储过程和读取的常见SQL来完成此操作. (3认同)