什么是图数据建模?
数据建模是一种定义查询逻辑和存储中数据结构的实践。一个设计良好的模型是发挥图数据库优势的关键,因为它能提高查询性能,支持灵活查询,并优化存储。
如何创建图数据模型
要将数据组织成数据模型,首先要做的是思考你想回答什么问题。
例如,假设您为一家零售公司工作,想了解客户正在购买哪些产品。要回答这个问题,您需要:
-
拥有关于所售产品和购买它们的客户的数据。这个过程被称为“实体提取”。
-
理解这些实体之间如何相互关联。
-
思考还需要提供哪些其他细节,即应该为这些实体添加哪些属性(例如,客户姓名)。
-
可选地,在使用无代码数据建模工具创建模型之前将其可视化。
-
如果满意,就可以开始将数据写入数据库。
在这个虚构的场景中,您可以首先将这些信息添加到图中:
CREATE (c:Customer {name: "John"})
CREATE (p:Product {name: “Camera”})
CREATE (c)-[:BUYS]->(p)
然后,您可以用一个查询(例如,约翰买了什么)来测试这个模型。
MATCH (c:Customer {name: "John"})-[b:BUYS]->(p)
RETURN p
请记住,图数据建模是一个迭代过程。您最初的图数据模型只是一个起点。随着您对用例了解更多或用例发生变化,模型需要随之调整。
此外,您可能会发现,尤其是在图规模扩大时,您需要重构您的模型,以确保其与不断变化的业务需求保持一致。
总之,创建数据模型的过程包括以下步骤:
-
理解领域并为应用程序定义具体的用例(问题)。
-
通过提取实体并决定它们如何相互关联来开发初始图数据模型。
-
根据初始数据模型测试用例。
-
使用 Cypher® 创建带有测试数据的图。
-
测试用例,包括针对图的性能。
-
由于关键用例的变化或出于性能原因,重构图数据模型。
继续学习
如需更实际的数据建模方法,请尝试以下资源:
-
GraphAcademy:数据建模基础:注册交互式课程。
-
从关系型到图:学习如何将关系型数据适配到图数据模型。
-
数据建模工具:查看可用于创建数据模型的工具列表。
-
数据建模技巧:查看如何提高数据建模技能的技巧。
-
建模设计:查看可作为项目策略的数据建模设计示例。
-
Neo4j GraphGists:查找 Neo4j 社区共享的图数据建模示例。
词汇表
- 标签
-
将节点标记为命名和索引子集的成员。一个节点可以被分配零个或多个标签。
- 标签
-
标签将节点标记为命名和索引子集的成员。一个节点可以被分配零个或多个标签。
- 节点
-
节点代表图数据模型中的一个实体或离散对象。节点可以通过关系连接,在属性中持有数据,并由标签分类。
- 节点
-
节点代表图数据模型中的一个实体或离散对象。节点可以通过关系连接,在属性中持有数据,并由标签分类。
- 关系
-
关系代表图数据模型中节点之间的连接。关系将源节点连接到目标节点,在属性中持有数据,并按类型分类。
- 关系
-
关系代表图数据模型中节点之间的连接。关系将源节点连接到目标节点,在属性中持有数据,并按类型分类。
- 属性
-
属性是用于在节点和关系上存储数据的键值对。
- 属性
-
属性是用于在节点和关系上存储数据的键值对。
- 集群
-
一个 Neo4j DBMS,跨多个服务器协同工作,以提高容错能力和/或读取可扩展性。集群上的数据库可以配置为在集群中的服务器之间进行复制,从而实现读取可扩展性或高可用性。
- 集群
-
一个 Neo4j DBMS,跨多个服务器协同工作,以提高容错能力和/或读取可扩展性。集群上的数据库可以配置为在集群中的服务器之间进行复制,从而实现读取可扩展性或高可用性。
- 图
-
一组节点的逻辑表示,其中某些对通过关系连接。
- 图
-
一组节点的逻辑表示,其中某些对通过关系连接。
- 模式
-
节点和关系的规定属性存在性和数据类型。
- 模式
-
节点和关系的规定属性存在性和数据类型。
- [[数据库模式]]数据库模式
-
节点和关系的规定属性存在性和数据类型。
- 索引
-
提高数据库读取性能的数据结构。了解更多关于支持的索引类别。
- 已索引
-
提高数据库读取性能的数据结构。了解更多关于支持的索引类别。
- 约束
-
约束是确保数据一致性和可靠性的一组数据建模规则。查看 Cypher 中可用的约束。
- 数据模型
-
数据模型定义了信息在数据库中的组织方式。一个好的数据模型将使查询和理解您的数据更容易。在 Neo4j 中,数据模型具有图结构。
- 数据模型
-
数据模型定义了信息在数据库中的组织方式。一个好的数据模型将使查询和理解您的数据更容易。在 Neo4j 中,数据模型具有图结构。