Source: https://dev-docs.yueshu.com.cn/v5.3.2/get-started/dataset/ Documentation version: v5.3.2 # 示例数据集:movie `movie`是内置示例数据集,包含电影、演员、导演、用户、电影类别,以及它们之间的关系。 ## 数据模型 数据集使用图类型`movie_type`和图`movie`。下图中的方框表示点类型,箭头表示边类型及其方向: ```` graph LR Actor["演员 Actor"] -->|"Act(参演)"| Movie["电影 Movie"] Director["导演 Director"] -->|"Direct(执导)"| Movie User["用户 User"] -->|"Watch(观看)"| Movie Movie -->|"WithGenre(属于类别)"| Genre["类别 Genre"] ```` ### 点类型 `Movie`类型的每个点表示一部电影,`Actor`类型的每个点表示一位演员。数据集包含以下五种点类型: | 点类型 | 表示的对象 | 标签 | 属性 | `Actor` | 演员 | `Person` | `id`、`name`、`birthDate` | `Director` | 导演 | `Person` | `id`、`name`、`birthDate` | `User` | 用户 | `Person` | `id` | `Movie` | 电影 | `Movie` | `id`、`name` | `Genre` | 电影类别 | `Genre` | `id`、`name` `Actor`、`Director`和`User`共享`Person`标签。查询时,`@Actor`按类型匹配演员,`:Person`按标签匹配这三种类型的点。更多说明见[类型与标签](https://dev-docs.yueshu.com.cn/v5.3.2/intro/concepts/#_3)。 ### 点属性 属性记录点的具体信息。数据集中的点属性如下: | 属性 | 数据类型 | 含义 | `id` | `INT`(整数) | 点的编号,也是该点类型的主键。 | `name` | `STRING`(字符串) | 演员或导演的姓名、电影名或类别名。 | `birthDate` | `DATE`(日期) | 演员或导演的出生日期;部分记录的值为`NULL`。 同一点类型中,`id`不能重复;不同点类型可以使用相同的`id`。例如,以下两个点的编号都是`11`,但分别表示电影和电影类别: | 点类型 | `id` | `name` | `Movie` | 11 | Star Wars: A New Hope | `Genre` | 11 | Space Opera 共享`Person`标签的点,属性并不完全相同。`User`只有`id`,没有`name`或`birthDate`。 ### 边类型与属性 边连接两个点,表示它们之间的关系;边类型区分不同的关系。下表中的箭头从边的起点指向终点: | 边类型 | 起点 → 终点 | 含义 | 属性 | `Act` | `Actor` → `Movie` | 演员参演电影 | 无 | `Direct` | `Director` → `Movie` | 导演执导电影 | 无 | `Watch` | `User` → `Movie` | 用户观看电影 | `rate`:`FLOAT`(浮点数)类型的评分 | `WithGenre` | `Movie` → `Genre` | 电影属于某个类别 | 无 每条`Watch`边的`rate`保存起点用户对终点电影的评分。用户对不同电影的评分,分别保存在对应的`Watch`边上。 本数据集中,每种边的标签与边类型同名,例如`Act`边类型的标签也是`Act`。 ## 数据加载行为 通过悦数图管理或 [ngql](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/ngql/#docker-compose) 加载时,会在所选 Schema 中创建图类型`movie_type`和图`movie`,再写入点和边。完整操作见[连接并完成首次查询](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#load)。 重复加载与加载失败 如果`movie_type`或`movie`已存在,重复加载可能因名称冲突而失败。 加载中断或失败时,先检查错误信息和已创建的对象。图`movie`存在不代表数据完整;只删除它后重试,仍可能与已有的`movie_type`冲突。