Neo4j图数据库中基本元素与概念

时间:2022-12-09 08:55:29

1.节点

节点(Node)是图数据库中的一个基本元素,用以表示一个实体记录,就像关系数据库中的一条记录一样。在Neo4j中节点可以包含多个属性(Property)和多个标签(Lable),如下图所示:

Neo4j图数据库中基本元素与概念

下面介绍一个最简单的节点,它只有一个属性,属性名是name,属性值是Tom,如下图所示

Neo4j图数据库中基本元素与概念

2.关系

关系(Relationship)同样是图数据库中的基本元素。当数据库中已经存在节点后,需要将节点链接起来构成图。关系就是用来连接两个节点, 关系也称为图论的边(Edge),其始端和末端都必须是节点,关系不能指向空也不能从空发起。关系和节点一样可以包含多个属性,但关系 只能有一个类型(Type),如图3所示:

Neo4j图数据库中基本元素与概念

一个节点可以被多个关系指向或作为关系的起始节点,如图4所示多个关系指向同一节点:

Neo4j图数据库中基本元素与概念

关系必须有开始节点(Start node)和结束节点(End node),两头都不能为空,如图5所示:

Neo4j图数据库中基本元素与概念

节点可以被关系串联或者并联起来,由于关系可以是有方向的,所以可在由节点、关系组成的图中进行遍历操作。在图的遍历操作中我们可以指定关系遍历的方向或者指定为无方向,因此在创建关系时不必为两个节点创建相互指向的关系, 而是在遍历时不指定遍历方向即可,特别注意一个节点可以在存在指向自己的关系,如图6所示:

Neo4j图数据库中基本元素与概念

3.属性

上面提到节点和关系都可以有多个属性,属性室友键值对组成的,就像Java的哈希表一样,属性名类似变量值。属性值可以是基本的数据类型, 或者由基本数据类型组成的数组。需要注意的是属性值没有null的概念,如果一个属性不需要了可以直接将整个键值对都移除,Neo4j中属性值 的基本数据类型如下:

Neo4j图数据库中基本元素与概念

4.路径

当使用节点和关系创建了一个图后,在此图中任意两个节点间都是可能存在路径的,如图7所示, 图中任意两个节点都存在由节点和关系组成的路径,路径也有长度的概念,也就是路径中关系的条数

Neo4j图数据库中基本元素与概念

当然也可以说单独一个节点就可以组成长度为0的路径。如果是两个简单的节点,中间只存在一条关系,那这条路径的长度就是1,如图8所示:

Neo4j图数据库中基本元素与概念

5.遍历(Traversal)

遍历一张图就是按照一定的规则,根据它们之间的关系,依次访问所有相关联的节点的操作。对于遍历操作不必自己实现, 因为Neo4j提供了一套高效的遍历API,可以指定遍历规则,然后让Neo4j自动按照遍历规则遍历并返回遍历的结果。 遍历规则可以是广度优先,也可以是深度优先。