NEO4J读书笔记——基本元素

一、NEO4J中的基本元素

不同于传统的关系型数据库,NEO4J中的基本元素仅仅包含以下三种:

1.1 节点
  1. 节点在NEO4J数据库中表示一个实体记录,类似于关系数据表中的一条记录。
  2. 一个节点可以包含多个属性值和多个标签类型。
  3. 一个节点可以被多个关系所指向,或者作为多个关系的起点。
  4. 两个节点之间可以有关系,也可以没有关系。
1.2 关系
  1. 当数据库中已经存在节点之后,关系用于将所有的节点连接来构成图。
  2. 一个关系必须有一个起始节点和一个终止节点。
  3. 相比于节点可以拥有多个类型,关系只允许拥有一个类型标签
1.3 属性
  1. 属性主要指的是数据库中实体的特性。
  2. 属性的基本描述采用的是类似键值对的方式 {属性名:属性值},属性名相当于变量名,属性值相当于变量值。
  3. 属性值的数据类型包括 基本数据类型和由基本数据类型所构成的数组。
  4. 基本数据类型包括:boolean,byte,short,int,long,float,double,char,string等

举例说明:

现在有张三,赵四,王五三个人,其中张三和赵四是一个网球俱乐部的的同学,王五和赵四同时属于足球俱乐部的同学。则可以构建出一个关系图。

python neo4j 节点修改属性 与添加属性_基本数据类型

首先人和组织是一个节点,上图主要包含5个节点。名字是节点的一个属性,各个节点的名字属性值包括张三、赵四、王五、网球俱乐部、足球俱乐部。"属于"是节点之间的关系。

二、NEO4J图形数据建模

首先,我们从一个任务来开始进行数据建模的过程。假设我们的目标是建立一个乡村爱情的的社交网络。假设在当前的社交网络中,主要包含三个人。如下图所示:

python neo4j 节点修改属性 与添加属性_社交网络_02

下一步,应该是对于这三个人添加关系:

python neo4j 节点修改属性 与添加属性_基本数据类型_03


我们知道,亲家和朋友这两个关系应该是双向的。但是,在Neo4J中,节点之间的关系是单向的。这说明每一个关系都有一个起始节点和终止节点。在NEO4J中,双向的关系可以通过两个单独的关系线进行链接。也就是说,NEO4J中的节点之间是可以有多条关系的。在这个社交网络中,为了区分这几个用户,可以给每一个用户设置一个名字的属性。如下图所示:

python neo4j 节点修改属性 与添加属性_社交网络_04

下面,我们进一步向这个社交网络中添加下一个两个人物节点,下一个节点我们添加“谢大脚”和“赵四媳妇”,如图所示:

python neo4j 节点修改属性 与添加属性_基本数据类型_05

综上所述,我们构建了一个部分的社交网络图。由此可以总结一下数据模型的构建过程。

  1. 首先构建出整个网络的节点。
  2. 考虑各个节点之间的关系
  3. 给各个节点添加属性,来区分出各个节点。