拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

作业1:TuGraph图数据库电影关系图实验

作业1:TuGraph图数据库电影关系图实验

作业1:TuGraph图数据库电影关系图实验

课程:图数据库 | 平台:阿里云TuGraph | 数据集:movie_graph(person、movie、PRODUCE关系)

一、成功启动TuGraph平台,描述部署步骤,附带登录截图

1. 阿里云TuGraph平台部署与启动步骤

本次实验使用阿里云图数据库TuGraph(云实例),无需本地安装部署,操作流程:

  1. 登录阿里云控制台,搜索「图数据库TuGraph」产品,进入TuGraph实例管理页面。
  2. 选择已创建好的TuGraph实例,等待实例状态变为运行中。
  3. 在实例详情页,获取Web可视化控制台的访问地址、账号与密码。
  4. 浏览器打开Web可视化链接,输入实例对应的账号密码,完成系统登录,进入TuGraph可视化工作台。

截图:阿里云TuGraph系统登录界面截图

二、模型建立、数据导入、增删改查,截图展示运行结果

2.1 图模型设计与建立

本次构建movie_graph图,包含两类节点,一种关系:

  • 节点标签movie:属性 id, title, tagline, summary, poster_image, duration, rated
  • 节点标签person:属性 id, name, born, poster_image
  • 关系PRODUCE:方向 person → movie,含义:人物制作该电影

在阿里云TuGraph可视化控制台,创建图movie_graph,定义点类型、边类型,设置id为唯一索引。

截图:图模型构建页面




2.2 数据导入

使用阿里云TuGraph的数据导入功能,上传movie、person的csv数据集,完成基础图数据批量导入。

截图:数据导入页面


2.3 增删改查(CRUD)Cypher操作

(1)新增 CREATE

新增movie节点

CREATE (m:movie {id:999, title:"新电影", tagline:"测试新增", summary:"新增电影测试", poster_image:"test.jpg", duration:110, rated:"PG"}) RETURN m;

新增movie节点

新增 person 节点

CREATE (p:person {id:999, name:"张三", born:1990, poster_image:"zhangsan.jpg"}) RETURN p;

新增person节点

新增 PRODUCE 关系

MATCH (p:person{id:999}), (m:movie{id:999}) CREATE (p)-[r:PRODUCE]->(m) RETURN p,r,m;

新增PRODUCE关系

截图:新增节点与关系图谱可视化结果

3.2 查询 MATCH

查询指定人物制作的电影

MATCH (p:person)-[r:PRODUCE]->(m:movie) WHERE p.id=999 RETURN p.name, m.title;

截图:查询结果

3.3 修改 SET

修改人物出生年份

MATCH (p:person{id:999}) SET p.born = 1992 RETURN p;

修改电影标题

MATCH (m:movie{id:999}) SET m.title = "修改后的电影名称" RETURN m;

3.4 删除 DELETE

删除关系

MATCH (p:person{id:999})-[r:PRODUCE]->(m:movie{id:999}) DELETE r;

删除人物节点

MATCH (p:person{id:999}) DETACH DELETE p;

删除电影节点

MATCH (m:movie{id:999}) DETACH DELETE m;

截图:删除执行成功页面

四、实验问题与解决

实验过程中创建节点出现报错:index value already exists

问题原因:
id 为唯一索引主键,数据库中已存在相同 id 节点,无法重复创建。

解决方法:
更换全新未使用的 id 数值,保证主键唯一性后即可正常新增数据。

五、聚合查询实验

5.1 节点数量统计(分组聚合)

MATCH (n) RETURN labels(n) AS label, count(n) AS nodeCount;

说明:
使用 count() 聚合函数,按节点标签分组,分别统计 person、movie 节点数量。

截图:聚合查询运行结果

5.2 查询电影平均时长

MATCH (m:movie) RETURN avg(m.duration) AS avg_movie_duration;

六、实验总结

本次实验基于阿里云TuGraph云图数据库完成完整图数据库实验,成功搭建 movie_graph 图模型,完成 CSV 数据导入,熟练使用 Cypher 语言实现节点与关系的新增、查询、修改、删除操作。掌握图数据库节点、属性、边关系的基本原理,熟悉聚合查询统计方法,并解决主键索引重复报错问题,加深了对图数据库存储结构与查询语法的理解。

返回列表