图数据模型与查询语言详解
1. 引言
在数据处理领域,不同的数据模型适用于不同的应用场景。从早期的层次模型,到后来的关系模型,再到如今的非关系型“NoSQL”数据存储,数据模型不断发展以满足多样化的需求。本文将重点介绍图数据模型及其相关的查询语言,包括三元组存储、SPARQL、Datalog等,并对比图数据库与网络模型的差异。
2. 图数据查询示例
2.1 查询在美国出生且居住在欧洲的人
以下是一个查询在美国出生且居住在欧洲的人的SQL示例:
-- lives_in_europe is the set of vertex IDs of all people living in Europe
lives_in_europe(vertex_id) AS (
SELECT edges.tail_vertex FROM edges
JOIN in_europe ON edges.head_vertex = in_europe.vertex_id
WHERE edges.label = 'lives_in'
)
SELECT vertices.properties->>'name'
FROM vertices
-- join to find those people who were both born in the US *and* live in Europe
JOIN born_in_usa ON vertices.vertex_id = born_in_usa.vertex_id
JOIN lives_in_europe O
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



