SIGMOD2023关于Graphs
Keynote Talks
49 Years of Queries
Mixed Methods Machine Learning
DEI Perspectives in Information Technology Education
Tutorials
图上可达性索引概述(An Overview of Reachability Indexes on Graphs)
6+2
因此,在过去的三十年里,人们花费了大量的精力来设计可达性查询的索引技术,构建先进的数据结构来有效地压缩图的传递闭包,从而加速在线查询处理,即可达性索引。
- 可达性(Reachability) :图中是否存在从源节点到目标节点的路径,且根据边标记图中的边标签,路径是否满足给定的路径约束。
- 查询有传递性,处理可达性查询需要访问图的大部分。
In this tutorial, we provide an in-depth technical review of the existing reachability indexes, ranging from those designed for plain graphs(普通图 figure1 a) to ones for edge-labeled graphs(边-标记图 figure 1 b). We conclude the tutorial by summarizing the open challenges for integrating these techniques into GDBMSs(图形数据库).
可达性查询(Reachability Query)
通篇 Q r Q_r Qr表示可达性查询,检查是否存在从一个顶点到另一个顶点的有向路径,即网络中从一个实体到另一个实体的传递关系。
可达性查询是基本的图数据处理操作。
根据 Q r Q_r Qr中的参数检查 G G G中路径是否存在
普通可达性(Path-constrained reachability)、路径约束可达性(Path-constrained reachability)
普通可达性
对普通图的可达性查询称为普通可达性查询。
一个简单的可达性查询
Q
r
(
s
,
t
)
Q_r(s,t)
Qr(s,t)包含一对参数,一个源顶点
s
∈
V
s \in V
s∈V和一个目标顶点
t
∈
V
t \in V
t∈V,并且
Q
r
(
s
,
t
)
Q_r(s,t)
Qr(s,t) 检查
G
G
G中是否存在从
s
s
s到
t
t
t的路径,称为
s
−
t
s-t
s−t路径,例如,在图 1(a) 中,
Q
r
(
A
,
G
)
=
t
r
u
e
Q_r(A,G)=true
Qr(A,G)=true,因为
s
−
t
s-t
s−t路径
(
A
,
D
,
H
,
G
)
(A,D,H,G)
(A,D,H,G)。
路径约束可达性
图被定义为
G
=
(
V
,
E
,
L
)
G=(V,E,L)
G=(V,E,L),其中
L
L
L是一组标签,每个
e
∈
E
e\in E
e∈E被分配一个标签
l
∈
L
l\in L
l∈L。图 1(b) 显示了一个边标记图,表示具有三种关系的社交网络,即
L
=
{
L= \{
L={ friendOf, follows, worksFor
}
\}
}。
对边标记图的可达性查询可以使用边标签对路径附加约束来表达,称为路径约束可达性查询。路径约束可达性查询
Q
r
=
(
s
,
t
,
α
)
Q_r=(s,t,\alpha)
Qr=(s,t,α)包含源 (
s
s
s) 和目标 (
t
t
t) 顶点作为参数,以及使用
L
L
L指定路径约束的表达式
α
\alpha
α。
Q
r
=
(
s
,
t
,
α
)
Q_r=(s,t,\alpha)
Qr=(s,t,α)检查
G
G
G中是否存在
s
−
t
s-t
s−t路径,使得该路径可以满足𝛼 强制的约束。
一般来说,𝛼 被定义为一个正则表达式,使用边缘标签
l
∈
L
l\in L
l∈L作为文字字符,并使用连接“
⋅
\cdot
⋅”、交替“
∪
\cup
∪”和 Kleene 运算符(星号“
∗
\ast
∗”或加“
+
+
+”)作为元字符,由以下语法生成:
α
:
:
=
l
∣
α
⋅
α
∣
α
∪
α
∣
α
+
∣
α
∗
\alpha ::=l|\alpha\cdot\alpha|\alpha\cup\alpha|\alpha^+|\alpha^*
α::=l∣α⋅α∣α∪α∣α+∣α∗。其中
Q
r
(
s
,
t
,
α
)
Q_r(s,t,\alpha)
Qr(s,t,α)中的正则表达式
α
\alpha
α强制执行的路径约束是
s
−
t
s-t
s−t路径的边标签序列应形成
α
\alpha
α语言中的单词。
例如,如果
α
=
(
\alpha=(
α=( friendOf
∪
\cup
∪ follow
)
∗
)^*
)∗,则图1(b) 中的
Q
r
(
A
,
G
,
α
)
=
f
a
l
s
e
Q_r(A,G,\alpha)=false
Qr(A,G,α)=false因为从
A
A
A到
G
G
G的每条路径都包含worksFor
。以正则表达式作为路径约束的路径查询称为正则路径查询(RPQ),路径约束可达性查询是RPQ的子类,它检查是否存在满足路径的
s
−
t
s-t
s−t路径由正则表达式定义的约束。路径约束的可达性查询已广泛应用于图分析中,例如社交网络中的社交关系分析,生物网络中蛋白质的交互路径分析,金融交易中的洗钱检测网络等。
可达性处理
普通可达性查询可以通过执行在线遍历来处理,例如,广度优先遍历(BFS)、深度优先遍历(DFS)或双向广度优先遍历(BiBFS)。然而,这些方法访问图的很大一部分,这对于大型图来说效率极低。路径约束的可达性查询可以通过引导图遍历来处理:可以根据查询中的正则表达式
α
\alpha
α构建有限自动机(finite automata,
FA),然后由FA引导遍历。然而,由于
α
\alpha
α中存在Kleene算子,因此仍然需要访问图的很大一部分。
加速普通可达性查询的简单方法是构建传递闭包(transitive closure,TC
),它可以扩展到路径约束的可达性查询,称为广义传递闭包(generalized transitive closure,GTC
)。TC计算并存储图中每对顶点之间是否存在路径。虽然TC的查询处理只需要恒定的时间,但高昂的计算和存储成本使其在实际中不可行。GTC通过添加边缘标签的附加信息来扩展TC,以处理路径受限的可达性查询。然而,GTC的计算比TC的计算更具挑战性,因为根据图中大量可能的路径约束对路径进行了额外的区分。因此,计算GTC在实际中也是不可行的。
在过去三十年中,大量研究集中于设计先进的数据结构,以高效计算和存储TC或GTC,同时为(普通/路径限制)可达性查询提供高效处理。这些高级数据结构称为可达性索引。设计可达性索引的一般直觉是减少构建TC或GTC时可达性信息的冗余记录,并在不同的可达顶点对之间存储简洁的信息。这使得可以导出图中任意一对顶点的可达性。推导过程应该比使用在线图遍历的查询处理花费更少的时间,这使得索引变得有趣。存在两种不同类型的反映可达性查询的可达性索引:普通可达性索引和路径约束可达性指数。
简单的可达性指数
现有的普通可达性索引可以根据底层框架和一些附加技术分为三个主要类别:树覆盖、2跳标记和近似TC。表 1 总结了普通可达性索引。索引类型列表示索引是部分索引还是完整索引。完整索引可以仅使用索引查找来处理查询,而部分索引则需要额外的图遍历。输入列指示索引假定为输入的图类型:DAG 表示有向无环图,General 表示一般图。动态列表明索引是否可以支持图形更新,即边/顶点删除和插入。
基于树覆盖的索引
树覆盖索引1的基础是附加到每个顶点的一个或多个区间,这些区间用于处理可达性查询。令[ a v , b v a_v,b_v av,bv]表示附加到顶点 v v v的区间。树覆盖方法是在一般图的生成树上定义的,然后扩展以处理未被生成树覆盖的边。因此,可以确定三种基本结构:(1)树;(2)DAG;(3)一般图。表1的第一块列出了基于树覆盖框架的索引技术。每个顶点附加的间隔都不同。