精华
Neo4j官方教程:第19节, 图数据建模是什么
教程目录 引自:https://neo4j.com/docs/getting-started/data-modeling
图数据建模是什么?
数据建模是一种定义查询逻辑和存储数据结构的实践。一个设计良好的模型是充分利用图数据库优势的关键,因为它可以提高查询性能、支持灵活查询并优化存储。
如何创建图数据模型
要将数据组织成数据模型,首先需要思考你想回答哪些问题。
例如,假设你为一家零售公司工作,并希望了解客户购买了哪些产品。为此,你需要:
- 拥有关于已售产品和购买它们的客户的数据:这个过程称为“实体提取”。
- 理解这些实体之间的关系。
- 思考需要提供哪些其他细节,即需要为这些实体添加哪些属性(例如客户姓名)。
- 可选:在创建模型之前,使用无代码数据建模工具可视化模型。
- 如果满意,可以开始将数据写入数据库。
在这个虚构的场景中,你可以通过以下方式将信息添加到图中:
CREATE (c:Customer {name: "John"})
CREATE (p:Product {name: "Camera"})
CREATE (c)-[:BUYS]->(p)
然后,你可以通过查询测试这个模型(例如,John 买了什么):
MATCH (c:Customer {name: "John"})-[b:BUYS]->(p)
RETURN p
请记住,图数据建模是一个迭代的过程。你的初始图数据模型只是一个起点。随着你对用例的深入了解或用例的变化,模型需要进行调整。
此外,你可能会发现,尤其是在图规模扩大时,需要重构模型以确保它与业务需求保持一致。
总结
创建数据模型的过程包括以下步骤:
- 理解领域并为应用程序定义具体的用例(问题)。
- 通过提取实体并决定它们之间的关系,开发初始图数据模型。
- 根据初始数据模型测试用例。
- 使用 Cypher® 创建包含测试数据的图。
- 测试用例,包括图的性能。
- 由于关键用例的变化或性能原因,重构图数据模型。
持续学习
如果想要更深入地学习数据建模,可以尝试以下资源:
- GraphAcademy: 数据建模基础:注册一个交互式课程。
- 从关系型到图模型:学习如何将关系型数据转换为图数据模型。
- 数据建模工具:查看可用于创建数据模型的工具列表。
- 数据建模技巧:查看如何提高数据建模技能的建议。
- 建模设计:查看可用于项目策略的数据建模设计示例。
- Neo4j GraphGists:查找 Neo4j 社区分享的图数据建模示例。