跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

图数据基本概念

一部电影连接着演员、导演和观众。沿着这些关系,可以找到演员参演的电影、合作过的导演,以及这些导演的其他作品。本文以电影数据为例,介绍图数据库如何用点、边和属性组织数据,让这些关系可以被查询。

点、边和属性

  • 点表示一个对象,例如一位演员或一部电影。
  • 边连接两个点,表示它们之间的关系。边有方向,例如参演关系从演员指向电影。
  • 属性由名称和值组成,用于描述点或边的具体信息。电影点的id(编号)和name(名称)是点的属性;表示观看关系的Watch边用rate属性记录用户对电影的评分。

下图使用内置的movie数据集。圆点表示对象,箭头表示关系;点类型和属性标在圆点旁,评分rate标在Watch边上。完整的数据模型见示例数据集。

电影数据中的点、边和属性

电影数据中的点、边和属性(省略部分属性)。

点的标识

本数据集中的每种点类型都使用id作为主键,用于标识一个点。在同一张图中:

  • 同一类型的点不能使用相同的id。
  • 不同类型的点可以使用相同的id。例如,图中的电影和类别都使用id: 11。

电影可能同名,因此查询指定电影时通常使用编号。

类型与标签

类型定义结构

类型规定点或边的结构,包括属性名称和数据类型。在本数据集中,Movie和Actor是点类型,Act是边类型。

边类型还规定两端允许连接的点类型,例如Act从Actor指向Movie。

标签用于匹配

如果要查询数据集中的所有人物,需要同时匹配演员、导演和用户这三种点类型。标签是查询时用于匹配点或边的标记,多个类型可以共享一个标签:Actor、Director和User都带有Person标签。

下图列出这三种点类型及其属性名称:

共享标签:Person
Actor(演员)
id, name, birthDate
Director(导演)
id, name, birthDate
User(用户)
id

共享标签的类型可以有不同的属性。User只有id,而Actor还包含name和birthDate。因此,按Person标签查询时,不能假定每个匹配的点都有name属性。

按类型或标签查询

在图查询语言(GQL)中,可以按类型或标签匹配点:

匹配方式 写法 匹配的点
按类型 (v@Actor) 演员
按标签 (v:Person) 演员、导演和用户

这些写法中:

  • (v@Actor)这样的圆括号写法是点模式,用于描述要匹配的点。
  • @Actor指定点类型,:Person指定标签。
  • v是点变量,用于在查询的其他位置引用匹配到的点。您可以换用m或person等名称,但需要同步修改查询中对该变量的所有引用。

更多语法见点模式。

图类型与图

图类型定义一张图允许包含的点类型、边类型和属性。movie_type定义了电影数据集使用的结构。

图保存实际的点、边和属性值。movie图使用movie_type,其中的数据需符合该图类型的定义。

图类型:movie_type

Movie点类型定义

  • id: INT
  • name: STRING
图:movie

一个Movie点

  • id: 11
  • name: Star Wars: A New Hope
图类型规定图中允许保存的数据结构。此处仅展示部分定义和数据。

movie是图名,Movie是图中的一种点类型名,名称区分大小写。

Schema

Schema 是组织图类型和图的命名空间,类似数据库内的目录。每个 Schema 都有自己的路径。

系统会自动创建/default_schema。快速开始中的movie_type和movie都创建在这个 Schema 中,无需为教程另建 Schema。

会话与工作图

会话保存多次查询之间的上下文,包括当前使用的 Schema 和工作图。在默认配置下,新会话使用/default_schema。未指定其他路径时,图类型和图都会在当前会话的 Schema 中创建或查找。

工作图是查询要访问的图。加载数据后仍需指定工作图:加载movie数据集会创建图并写入数据,但不会将其选为工作图。

执行MATCH等访问图数据的查询前,可以为会话设置工作图,也可以在查询开头用USE指定图:

设置方式 写法 生效范围
会话设置 SESSION SET GRAPH movie 当前会话的后续查询
查询内指定 USE movie 仅当前查询

查询内指定的图优先于会话设置,且不会改变会话的工作图。

两种方式的完整示例见选择图并查询电影。

重新连接或切换客户端并新建会话后,需要再次指定图才能查询其中的数据。已有数据可继续使用,无需因重新连接而重新加载。

概念对照

类别 用途 概念
数据 保存实际对象、关系和具体值 图、点、边、属性值
结构 定义图中允许保存的数据结构 点类型、边类型、图类型、属性定义
查询 匹配和引用数据 标签、点变量、模式
会话 定位并选择查询要访问的图 当前 Schema、工作图

下一步

按连接并完成首次查询加载movie示例数据集,并查询电影及其演员。