数据模型

    Nebula Graph数据模型使用6种基本的数据模型:

    • 图空间(Space)

      图空间用于隔离不同团队或者项目的数据。不同图空间的数据是相互隔离的,可以指定不同的存储副本数、权限、分片等。

    • 点(Vertex)

      点用来保存实体对象,特点如下:

      • 点必须有至少一个Tag,也可以有多个Tag。但不能没有Tag。
    • 边(Edge)

      边是用来连接点的,表示两个点之间的关系或行为,特点如下:

      • 两点之间可以有多条边。
      • 边是有方向的,不存在无向边。
      • 一条边有且仅有一个Edge type。
      • 一条边有且仅有一个rank。其为int64,默认为0。
    • Tag由一组事先预定义的属性构成。

    • 边类型(Edge type)

      Edge type由一组事先预定义的属性构成。

    Note

    Tag和Edge type的作用,类似于关系型数据库中“点表”和“边表”的表结构。

    有向属性图

    下表为篮球运动员数据集的结构示例,包括两种类型的点(playerteam)和两种类型的边(servefollow)。

    Note

    Nebula Graph 中没有无向边,只支持有向边。

    Compatibility

    由于 Nebula Graph 2.6.0 的数据模型中,允许存在”悬挂边”,因此在增删时,用户需自行保证“一条边所对应的起点和终点”的存在性。详见、DELETE VERTEX、、DELETE EDGE

    不支持 openCypher 中的 MERGE 语句。