图数据建模

此文档介绍 Nebula Graph 建模及图模型的基本概念。

图空间

图空间 为彼此隔离的图数据,与 MySQL 中的 database 概念类似。

有向属性图

Nebula Graph 存储的图为 有向属性图,边为有向边,点和边均可包含属性。可表示为: G = < V, E, PV, PE >, 其中 V 表示节点,E 表示有向边,PV 表示节点属性,PE 表示边属性。 此文档将使用如下示例图数据介绍属性图的基本概念:

map300

上图为 NBA 球员及球队信息数据,图中包含 2 种类型的 11 个节点,即 player 和 team,2 种类型的边,即 serve 和 like。 以下为示例图数据涉及到的概念介绍。

节点

节点用于表示现实世界中的实体,本例的数据中共包含 11 个节点。

标签

Nebula Graph 使用标签对节点进行分类,本例包含的节点标签为 playerteam

边用来连接节点,边通常表示两个节点间的某种关系或行为,本例中的边为 servelike

边类型

每条边都有一种边类型,以边 serve 为例,节点 101(表示一名球员)为起始点,节点 215(表示一支球队)为目标点。节点 101 有一条出边,而节点 215 有一条入边。

属性

属性为点和边内部的键值对。本例中,节点 player 拥有属性 idnameage,边 like 则拥有属性 likeness

Schema

Nebula Graph 中,schema 为标签及边对应的属性。与 MySQL 类似,Nebula Graph 是一种强 schema 的数据库,属性的名称和数据类型在数据写入前已确定。