数据模型
Nebula Graph数据模型使用6种基本的数据模型:
图空间(Space)
图空间用于隔离不同团队或者项目的数据。不同图空间的数据是相互隔离的,可以指定不同的存储副本数、权限、分片等。
点(Vertex)
点用来保存实体对象,特点如下:
- 点必须有至少一个Tag,也可以有多个Tag。但不能没有Tag。
边(Edge)
边是用来连接点的,表示两个点之间的关系或行为,特点如下:
- 两点之间可以有多条边。
- 边是有方向的,不存在无向边。
- 一条边有且仅有一个Edge type。
- 一条边有且仅有一个rank。其为int64,默认为0。
-
Tag由一组事先预定义的属性构成。
边类型(Edge type)
Edge type由一组事先预定义的属性构成。
Note
Tag和Edge type的作用,类似于关系型数据库中“点表”和“边表”的表结构。
有向属性图
下表为篮球运动员数据集的结构示例,包括两种类型的点(player、team)和两种类型的边(serve、follow)。
Note
Nebula Graph 中没有无向边,只支持有向边。
Compatibility
由于 Nebula Graph 2.6.0 的数据模型中,允许存在”悬挂边”,因此在增删时,用户需自行保证“一条边所对应的起点和终点”的存在性。详见、DELETE VERTEX、、DELETE EDGE。
不支持 openCypher 中的 MERGE 语句。