图数据库初探之neo4j的简单应用

数据库 其他数据库
neo4j是一种对图数据进行存储的数据库,也是一种嵌入式数据库。它可以将复杂的图数据以节点和边形式存储。本文主要介绍了neo4j数据库的一些作用和用法,希望能对您有所帮助。

本文我们将分别从什么是neo4j、neo4j作用和neo4j用法几个方面来简单介绍图数据库neo4j的知识,希望能够给您带来收获。

1、什么是neo4j

neo4j是一种图数据库,同时它也是一种嵌入式数据库。它对图数据是以节点和边(关系)模式进行存储。每个节点可以包含一系列信息,通过Node类里面的setProperty()方法对节点信息进行存储,Node也可以使用createRelationshipTo()方法实现个节点和其他节点的联系,并且该方法返回的是一个Relationship对象,我们也可以对Relationship设置属性,也就是节点和节点之间的关系属性。什么叫关系属性?例如:person1àperson2,person1和person2的关系可以是朋友也可以是同学还可以是亲人,这里的朋友、同学、亲人就是这里的Relationship的属性。那么关系属性就是描叙两个节点之间的关系类型。这就方便在对节点进行查找的时候对节点进行过滤。如下图:

图数据库初探之neo4j的简单应用

2、neo4j作用

上面对neo4j进行了简单的介绍,可知neo4j是一种对图数据进行存储,是一种嵌入式数据库。它可以将复杂的图数据以节点和边形式存储。例如:在我们现实社会中人与人之间的关系,这就是一个复杂的图,朋友也可以是多种多样的,怎样描叙这样复杂的图呢?Neo4j提供了比较简单的描叙方式。如图:

图数据库初探之neo4j的简单应用

就上面的图可以根据neo4j提供的方法获取***层朋友和第二层朋友:   TraversalDescriptiontd = Traversal.description().breadthFirst().relationships(RelTypes.KNOWS, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() );    上面的代码所执行的是:同个一个事务获取一个事务描叙,然后根据这个事务描叙在一存储的图中过滤出我们想要的节点,这个事务描叙***个是进行广度优先搜索(breadthFirst),接下类对节点关系进行过滤。Direction是指定关系的方向,RelTypes就是关系的类型。这样就可以获得相应的结果。

3、neo4j用法简单介绍

此处就neo4j的一个例子进行讲解(如图):

图数据库初探之neo4j的简单应用

上面图是一个部门结构图,这个在我们现实生活中也是比较常见的。如:我们学校,它就是一个由各个部门构成的。如何对这种图进行查找,以获得我们想要的信息呢?

1)、获得各个部门的名:

 

  1. TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.ROOT, Direction.INCOMING).relationships(RoleRels.PART_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode()); 

 

2)、获得所有的admin

 

  1. TraversalDescription td =Traversal.description().breadthFirst().relationships(RoleRels.PART_OF, Direction.INCOMING).relationships(RoleRels.MEMBER_OF, Direction.INCOMING).filter(Traversal.returnAllButStartNode() ); 

 

3)、更具个人信息获得他所在的所有部门

 

  1. Node jale = getUserByName( "Jale" );  
  2.  
  3. TraversalDescription td = Traversal.description().depthFirst().relationships(RoleRels.MEMBER_OF, Direction.OUTGOING).relationships(RoleRels.PART_OF, Direction.OUTGOING).filter(Traversal.returnAllButStartNode() ); 

 

附录:

neo4j还提供了两种遍历的方式:一种是深度搜索,第二种是广度搜索。也提供了两种搜索算法,一种是A*算法,第二种是dijkstra算法。提高了编程人员的工作效率。同时neo4j也有简历索引的功能,方便了多节点的查找。

关于neo4j图数据库的知识就介绍到这里,希望能够带给您收获,谢谢!

【编辑推荐】

  1. 通过SDE服务直连Oracle数据库的配置
  2. 一些很实用的Oracle数据库优化策略总结篇
  3. Java和Ibatis调用存储过程并取得返回值详解
  4. Oracle、MySQL和PostgreSQL的比较与选择
  5. 一个系统崩溃造成Oracle数据库无法启动的恢复实例

 

责任编辑:赵鹏 来源: CSDN博客
相关推荐

2017-07-28 15:12:28

Neo4j图数据库

2022-04-13 11:32:45

Neo4j图数据库

2022-11-18 17:53:03

Neo4j

2021-12-27 07:31:37

JavaNeo4J数据库

2018-05-03 15:40:33

2011-09-22 16:46:02

Neo4j图形数据库数据库

2022-01-17 17:10:18

Neo4j 图数据库

2022-01-17 14:34:59

数据平台数据数字化

2018-05-16 08:26:39

知识图谱Neo4j

2022-02-15 08:22:28

Neo4jSpring数据库

2021-12-03 20:33:08

计算

2021-12-22 07:31:18

RedisNoSQL数据库

2017-04-24 20:30:47

数据库工具导入数据

2015-03-09 11:11:23

图形数据库数据库流行度DB-engines

2015-09-28 08:57:06

Ruby APPNeo4j

2023-10-12 08:59:52

Docker AI生成式 AI

2013-03-06 16:06:31

2021-10-27 17:20:23

图数据数据库

2022-12-28 20:11:25

图数据库

2022-05-20 11:54:28

Neo4jNeo4j数据库
点赞
收藏

51CTO技术栈公众号