图数据库(Graph Database)的核心思想就是**“以节点和关系为一等公民”来存储数据,而不是像关系型数据库那样用表和外键来间接表达关系。下面从数据模型、存储方式、常见实现**三个层面说明它如何存储节点关系。
在图数据库中,数据通常由三部分组成:
节点(Node)
Person、Productname、age关系(Relationship / Edge)
FRIEND、BUYSsince、weight属性(Property)
示例:
(Alice:Person {age:30}) -[:FRIEND {since:2018}]-> (Bob:Person)
例如:
MATCH (a:Person)-[:FRIEND]->(b:Person)
RETURN a, b
不同图数据库实现方式不同,但核心思路类似:
示例结构(简化):
Node A:
out: [Edge(A->B, FRIEND), Edge(A->C, LIKE)]
Node B:
in: [Edge(A->B, FRIEND)]
✅ 优点:
如:
方式:
| 对比项 | 关系型数据库 | 图数据库 |
|---|---|---|
| 关系表示 | 外键 + JOIN | 边(直接存储) |
| 多跳关系 | 慢(JOIN 爆炸) | 快(遍历) |
| schema | 强 | 灵活 |
| 典型查询 | SQL | Cypher / Gremlin |
图数据库通过“显式存储边(关系)”的方式,把节点之间的连接作为核心数据结构,而不是通过计算 JOIN 来得到关系。
如果你感兴趣,我也可以:
你想深入哪一块?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。