图结构
创建图集前,必须根据具体场景设计合适的图结构。这样做可以建立数据模型,有助于理解图的内在关系,提高信息检索效率。
图结构由点和边的标签和属性所定义,二者详细说明了所涉及的点和边的类型及其所具备的属性。图结构可以随着时间的推移不断演化,根据需要随时调整。
下图为图结构的一个示例:

标签
GQL使用标签对相同类型的点或边进行分组和引用。上图示例中包含以下标签:
- 点标签:
User
,Product
和Type
- 边标签:
Purchased
和Has
嬴图数据库不支持使用GQL创建标签,但您可使用UQL创建标签的Schema ,其作用与标签相同。标签主要具有以下特性:
- 每个点仅有一个点标签,每条边也仅有一个边标签。插入点/边时,会指定点/边的标签。
- 不可为点或边重新分配新标签。
- 所有点标签不可重名,所有边标签不可重名,但点标签可与边标签重名。
属性
属性用于存储点和边的补充属性信息,如标签为User
的点,拥有name
和gender
两个属性。每个属性包括属性名称和属性值。
嬴图数据库不支持使用GQL创建属性,但您可使用系统提供的属性(系统属性)或通过UQL创建自定义属性,这些属性等价于GQL的属性。属性主要具有以下特性:
- 属性与标签相关联,即同一标签下的点或边拥有相同的属性集。
- 插入点或边时,可以指定属性值,并在晚些时候根据需要更新或删除属性值。
- 属性类型可以预先定义,也可在创建时定义。
图元素
点和边
图元素指的是点和边这两个基础图单元。通常来说,点代表实体,边代表点之间的关系。
这是根据上述数据模型创建的示例图:

唯一标识符
每个点携带_id
(String类型)和_uuid
(Uint64类型)两条系统属性,是点数据的唯一标识符。插入点时,可以指定_id
的值,若未指定,则由系统自动生成;而_uuid
的值由系统自动生成,无法手动指定。
每条边携带一条系统属性_uuid
(Uint64类型),是边数据的唯一标识符。边的_uuid
值同样由系统自动生成,无法手动指定。
边的方向
在嬴图数据库中,每条边都是有向边,由起点指向终点。起点和终点也被称作边的端点。例如,标签为Purchased
的三条边,其起点都是(:User {name: "maysoo", gender: "female"})
,分别指向标签为Product
的三个终点。
假定边e
有起点a
和终点b
。在路径(a)-[e]->(b)
里,边e
指向右。相反,在路径(b)<-[e]-(a)
里,边e
指向左。
自环

当一条边的起点指回自身,即边的起点和终点均为同一点时,我们称之为自环。
路径
路径是由奇数个相连的图元素组成的序列。路径始终(1)以点开始,以点结束,(2)节点与边交替出现。路径可以由单个点组成。
在嬴图数据库中,默认情况下(TRAIL
为默认路径模式),可以重复访问路径中的点,但不可重复访问路径中的边。
子路径
子路径是完全包含在另一条路径中的路径。