数据模型
Neo4j图数据库遵循属性图模型来存储和管理其数据。
属性图模型表示节点、关系和属性中的数据。其中,节点和关系都包含属性,关系连接节点,属性是键值对,节点用圆圈表示,关系用方向键表示,关系具有单向和双向两个方向,每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”,关系应该是定向的。
在Neo4j中,关系应该是有方向性的。Neo4j图数据库将所有数据存储在节点和关系中,不需要任何额外的RDBMS数据库或无SQL数据库来存储Neo4j数据库数据,并以图形的形式存储其数据的本机格式。
Neo4j使用本机GPE(图形处理引擎)引擎来使用它的本机图存储格式。
图形数据库数据模型的主要构建块是:
- 节点
- 关系
- 属性
图形理论基础
图是一组节点和连接这些节点的关系,图形数据存储在节点和关系在属性的形式,属性是键值对表示数据。
图形是一组节点和连接这些节点的关系,图形以属性的形式将这些数据存储在节点和关系中,属性是用于表示数据的键值对。
在图形理论中,我们可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示。
最简单的可能图是单个节点
可以使用以上节点表示社交网络(如WeChat个人资料),它不包含任何属性。
向WeChat Profile添加一些属性
该节点包含一组属性,属性是一个名称:值对。
在两个节点之间创建关系
此处在两个配置文件之间创建关系名称“跟随”。 这意味着 Profile-I 关注 Profile-II。
复杂示例图
这里节点用关系连接。 关系是单向或双向的。
- 从PQR到XYZ的关系是单向关系。
- 从ABC到PQR的关系是双向关系。
构建模块
Neo4j图数据库主要有以下构建块:
-
节点
- 节点是图表的基本单位,包含具有键值对的属性。
-
属性
- 属性是用于描述图节点和关系的键值对
- Key=值
- 其中Key是一个字符串
- 值可以通过使用任何Neo4j数据类型来表示
-
关系
-
关系连接两个节点,如下所示
-
Emp Node
和Dept Node
是两个不同的节点,WORKS_FOR
是Emp和Dept两个节点之间的关系,根据箭头指向,这种关系描述为“Emp WORKS_FOR Dept” -
每个关系包含一个起始节点和一个结束节点,上图中的关系被称为“进入关系”到“Dept”节点,并且“外向关系”到“Emp”节点
-
像节点一样,关系也可以包含属性作为键值对。这里的
Works-For
关系有一个属性作为键值对Id=123
,表示这种关系的一个ID
-
-
标签
- Label将一个公共名称与一组节点或关系相关联。
- 节点或关系可以包含一个或多个标签,可以为现有节点或关系创建新标签,也可以从现有节点或关系中删除现有标签
- 上面图中,左侧节点有一个标签“Emp Node”,右侧节点有一个标签“Dept Node”,两节点之间的关系有一个标签“Works-For”
- 注:Neo4j将数据存储在节点或关系的属性中。
-
Neo4j数据浏览器
- Neo4j数据浏览器用于执行
CQL
命令并查看输入输出 - 这里需要在美元提示符
$
处执行所有CQL
命令
- Neo4j数据浏览器用于执行