Neo4j 图数据库简介图数据库(Graph Database) 是一种以图结构为基础进行数据存储与查询的数据库。与传统的关系型数据库通过表格和主外键进行建模不同,图数据库使用节点(Nodes)和关系(Relationships)直接表示实体及其之间的连接,更加自然地映射现实世界中的关联结构,特别适用于处理复杂的连接型数据。Neo4j 是目前最
Neo4j 图数据库简介
图数据库(Graph Database) 是一种以图结构为基础进行数据存储与查询的数据库。与传统的关系型数据库通过表格和主外键进行建模不同,图数据库使用节点(Nodes)和关系(Relationships)直接表示实体及其之间的连接,更加自然地映射现实世界中的关联结构,特别适用于处理复杂的连接型数据。
Neo4j 是目前最流行和成熟的图数据库之一,由 Neo4j 公司使用 Java 开发。它采用原生图存储与查询引擎,广泛应用于社交网络、推荐系统、知识图谱、反欺诈分析、网络安全等领域,是构建基于连接关系应用的强大平台。
般情况下,我们使用数据库查找事物间的联系的时候,只需要短程关系的查询(两层以内的关联)。当需要进行更长程的,更广范围的关系查询时,就需要图数据库的功能。
而随着社交、电商、金融、零售、物联网等行业的快速发展,现实世界的事物之间织起了一张巨大复杂的关系网,传统数据库面对这样复杂关系往往束手无策。因此,图数据库应运而生。
图数据库(Graph database)指的是以图数据结构的形式来存储和查询数据的数据库。
从 http://db-engines.com/en/ranking 可以发现,Neo4j 是目前用的最多的图数据库,世界数据库排行榜上排名21位。
Neo4J属于原生图数据库,其使用的存储后端专门为图结构数据的存储和管理进行定制和优化的,在图上互相关联的节点在数据库中的物理地址也指向彼此,因此更能发挥出图结构形式数据的优势。
知识图谱中,知识的组织形式采用的就是图结构,所以非常适合用neo4j进行存储。
图数据库的优势在于:
性能上,对长程关系的查询速度快
擅于发现隐藏的关系,例如通过判断图上两点之间有没有走的通的路径,就可以发现事物间的关联
数据存储形式
neo4j的数据存储形式 主要是 节点(node)和 边(edge) 来组织数据。node可以代表知识图谱中的实体,edge可以用来代表实体间的关系,关系可以有方向,两端对应开始节点和结束节点。
另外,可以在node上加一个或多个标签(Node Label)表示实体的分类,以及一个键值对集合来表示该实体除了关系属性之外的一些额外属性。关系也可以附带额外的属性。
查询语言cypher
neo4j采用自己设计的查询语言cypher,其特点和sql有很多相似的地方。match、where、return是最常用到的关键词:
match: 相当于 sql中的select,用来说明查询匹配的数据模式(或者说图模式)
where: 用来限制node或者关系中部分属性的属性值,从而返回我们想要的数据
return: 返回节点或者关系