首页 理论教育2017软件工程论文专集:使用Neo4j图数据库

2017软件工程论文专集:使用Neo4j图数据库

【摘要】:Neo4j最主要的特点是基于属性的图,可以支持Java、Python、Ruby、PHP、Scala等编程语言,提供了Cypher、Blueprints、Gremlin查询语言,不过常使用Cypher,支持传统关系型数据库的ACID。目前市面上的图数据库产品有很多,如Neo4j、OrientDB、IBM System G Native Store、Oracle Spatial and Graph等。表2展示了比较流行的图数据库Neo4j与关系型数据库执行时间对比。目前主流的是Neo4j,Neo4j[3]实体关系存储和查询等方面性能均优于其他图数据库,在工业上具有广泛的应用[4]。

Neo4j最主要的特点是基于属性的图,可以支持Java、Python、Ruby、PHP、Scala等编程语言,提供了Cypher、Blueprints、Gremlin查询语言,不过常使用Cypher,支持传统关系型数据库的ACID。它的关系模型主要以节点和关系(边)来体现,也可处理键值对。图数据库适用于社交网络、推荐系统等专门用于构建知识图谱的系统中。目前业界已经有相当多的公司或组织在使用,主要用于网络管理、社交网络、推荐系统等专门用于构建知识图谱的系统中。相比其他相关产品,Cypher的优势在于:

(1)在创建时就存储关系,避免动态的复杂查询消耗大量内存。

(2)得益于高效的节点和关系的存储,可以达到常数级别的图的深度、广度遍历。

(3)所有关系都是同等重要的和快速的,后续根据业务模型变化进行扩展也很方便。

(4)压缩的存储和基于内存的缓存可以高效地处理上亿节点的查询和操作。(www.chuimin.cn)

知识图谱是基于图的数据结构,它的存储方式主要有两种形式:RDF存储格式和图数据库[2]。目前市面上的图数据库产品有很多,如Neo4j、OrientDB、IBM System G Native Store、Oracle Spatial and Graph等。表2展示了比较流行的图数据库Neo4j与关系型数据库执行时间对比。目前主流的是Neo4j,Neo4j[3]实体关系存储和查询等方面性能均优于其他图数据库,在工业上具有广泛的应用[4]。基于知识图谱进行实体关系查询时,当涉及2度以上关系查询时,其查询效率高于关系型数据库的几千倍甚至几万倍。图数据库还便于数据扩展,当有新的数据时可以直接插入到库中,在建立节点之间的关系时,不用像关系型数据库那样要考虑复杂的表之间的主外键关系。

表2 图数据库与关系型数据库执行时间对比