什么是图数据库
工作原理
图数据库通过节点和关系进行结构化。
节点是图中的实体,它们可以:
关系提供了两个节点之间的命名连接(例如:Person - LOVES - Person),它们:
-
必须始终有一个起始节点、一个结束节点,且只能有一种类型。
-
必须有方向。
-
可以像节点一样拥有属性。
-
节点可以拥有多种类型的多个关系,而不会牺牲性能。
总之,节点和关系是一种高效且灵活的数据存储方式,因为它们允许您:
-
在大图中创建深度和广度遍历。
-
将数据库扩展到数十亿个节点。
-
设计能够随时间调整的灵活属性图数据模型。
为什么要使用图数据库
项目通常涉及大量复杂数据,而图数据库可以成为强大的工具。
还有其他将数据存储为对象和连接的方法,例如关系数据库。然而,关系数据库使用计算开销较大的 JOIN 操作或交叉查找,这些操作通常绑定在僵化的数据模型上。
图数据库不使用 JOIN。相反,关系是与数据元素(节点)一起以更灵活的格式原生存储的,这使得数据遍历能够被优化,并且每秒可以访问数百万个连接。
此外,许多日常挑战和任务都可以从图的角度来看待,因为它允许您:
-
导航深层层级结构。
-
寻找遥远项目之间的隐藏连接。
-
发现项目之间的相互关系。
如何使用
无论是社交网络还是道路网络,所有网络都可以结构化为相互关联的关系图。很多时候,项目的问题和挑战围绕的是元素之间的关系,而不是元素本身(例如:如何从 A 到 B,而不是 A 是什么以及 B 是什么)。因此,图可以应用于社会的许多领域以及各种各样的项目中。
如今,Neo4j 被许多初创公司、教育机构和大型企业广泛使用,涵盖金融服务、政府、能源、科技、零售和制造等多个领域。图在帮助他们开发创新技术、进行业务管理、获取洞察和增加收入以及全面提高效率方面取得了成功。
您可以在 Neo4j 官网上找到有关用例的更多信息。
持续学习
如果您想对图数据库有更好、更深入的了解,可以阅读有关 图数据库概念 的更多信息,或报名参加 GraphAcademy 的 Neo4j 基础课程。
术语表
- label (标签)
-
将节点标记为命名和索引子集的成员。一个节点可以分配零个或多个标签。
- labels (标签)
-
标签将节点标记为命名和索引子集的成员。一个节点可以分配零个或多个标签。
- node (节点)
-
节点代表图数据模型中的实体或离散对象。节点可以通过关系连接,通过属性保存数据,并按标签进行分类。
- nodes (节点)
-
节点代表图数据模型中的实体或离散对象。节点可以通过关系连接,通过属性保存数据,并按标签进行分类。
- relationship (关系)
-
关系代表图数据模型中节点之间的连接。关系连接源节点和目标节点,通过属性保存数据,并按类型进行分类。
- relationships (关系)
-
关系代表图数据模型中节点之间的连接。关系连接源节点和目标节点,通过属性保存数据,并按类型进行分类。
- property (属性)
-
属性是用于在节点和关系上存储数据的键值对。
- properties (属性)
-
属性是用于在节点和关系上存储数据的键值对。
- cluster (集群)
-
一种跨多台服务器协同工作的 Neo4j DBMS,旨在提高容错能力和/或读取可扩展性。集群上的数据库可以配置为在集群中的服务器之间进行复制,从而实现读取可扩展性或高可用性。
- clusters (集群)
-
一种跨多台服务器协同工作的 Neo4j DBMS,旨在提高容错能力和/或读取可扩展性。集群上的数据库可以配置为在集群中的服务器之间进行复制,从而实现读取可扩展性或高可用性。
- graph (图)
-
一组节点的逻辑表示,其中一些节点对由关系连接。
- graphs (图)
-
一组节点的逻辑表示,其中一些节点对由关系连接。
- schema (模式)
-
为节点和关系指定的属性存在性和数据类型。
- schemas (模式)
-
为节点和关系指定的属性存在性和数据类型。
- [[database schema]]database schema (数据库模式)
-
为节点和关系指定的属性存在性和数据类型。
- indexes (索引)
-
提高数据库读取性能的数据结构。阅读有关支持的索引类别的更多信息。
- indexed (已索引)
-
提高数据库读取性能的数据结构。阅读有关支持的索引类别的更多信息。
- constraints (约束)
-
约束是一组数据建模规则,用于确保数据一致且可靠。查看 Cypher 中有哪些可用约束。
- data model (数据模型)
-
数据模型定义了信息在数据库中如何组织。良好的数据模型将使查询和理解数据变得更容易。在 Neo4j 中,数据模型具有图结构。
- data models (数据模型)
-
数据模型定义了信息在数据库中如何组织。良好的数据模型将使查询和理解数据变得更容易。在 Neo4j 中,数据模型具有图结构。