“FD 只要求已有行之间的一些值相同,所以本算法只做等式合并。若约束要求“每条 $P(x)$ 都应有某条 $Q(x,y)$”,就可能需要增加事实与新的见证值;当前终止计数不再适用。依赖追赶与通…”
形式陈述 ​
输入、依赖与允许的补全 ​
固定有限关系模式,输入
一个允许的补全
计算中的标记空值
限制追赶的一步 ​
本页固定 restricted chase(限制追赶,也称 standard chase)。在当前实例
- 对 TGD,只有不存在扩展
的赋值 使整个 时,触发才活跃。执行时为每个存在变量各取一个此前未使用的空值,同一变量在所有头原子中共用该空值,加入整组头事实。没有存在变量时,只补尚缺的头事实。 - 对 EGD,若
,触发活跃。若两者都是不同普通常量,返回失败;否则把二者合并,常量优先保留,两个空值则任选一个固定编号较小的代表。在所有关系、所有元组位置上全局替换,并按集合去重。
TGD 检查的是头的共同见证,不能逐原子各找一份彼此不一致的见证。EGD 合并后必须重新检查匹配与活跃性,因为共享变量可能因此获得新的匹配;只改触发处的两格会破坏同一符号的一致含义。
K := I
repeat
在全部规则与当前体匹配中寻找一个活跃触发
if 不存在活跃触发: return K(成功)
if 触发为 TGD: 以新空值补入整组头事实
else if 等式两端为不同常量: return 失败
else: 在 K 中全局合并两端并去重
“成功”要求全部触发都已不活跃,不能因为暂时没有选择下一步就停止。执行顺序可以不同,本页的结论对任意有限成功执行成立,不要求它们得到完全相同的符号表。
有限成功的保证 ​
若执行有限步后成功返回
这种
进一步,对任意纯合取查询
右侧就是确定答案语义。查询使用的新常量也保持固定,并可加入模型论域;此处只输出全由常量组成的元组。下面证明这两个结论,并解释失败与不终止各意味着什么。
直觉
TGD 写下的是一项存在义务:“这名学生必须有导师”,却没有告诉我们导师是谁。空值给这个尚未命名的见证留一个可复用的位置。若已有合适导师,就没有未完成的义务,限制追赶不会再造一个。
EGD 传递另一种信息:“这两个位置其实必须是同一个对象。”它可以把新建的见证合并,也可以把占位符确定为已有常量;如果业务数据已经把二者指定为两个互异常量,等式便无从满足。
通用模型把尚未决定的身份保留为可映射的空值。无论真实补全怎样选择导师,追赶中的占位符都能映到相应见证。合取查询只要求找到一组正事实,因此这组匹配可以随同态一起送到每个补全中。这是确定答案成立的原因。
例子与边界
两个见证、一次合并、一个结论 ​
从唯一事实
沿以下顺序执行,恰有四次有效步骤:
| 步骤 | 活跃触发 | 执行后的变化 |
|---|---|---|
| 1 | 加入 |
|
| 2 | 加入 |
|
| 3 | 全局以 |
|
| 4 | 加入 |
第二步仍活跃,因为 Advisor 的事实不能充当 Supervisor 的头见证。第二步结束时,
最终得到
逐条检查停止条件:Student 只有
查询
在
失败是常量冲突 ​
若输入另含
每一步有限仍可能永远生成 ​
取单条 TGD
及输入
每个新末端又产生一个活跃触发,所以这条执行不终止。但
Datalog 与有限最小不动点依靠固定有限活跃域限制可生成的事实数;这里不断出现新见证,该计数失效。函数依赖的追赶检验则只合并固定符号表中的值,每次减少等价类数,因而有另一个终止理由。两者都不能替一般存在依赖提供终止界。
推论与应用
同态不变量:每一步都能在真实补全中解释 ​
任取满足
若下一步执行 TGD,体匹配为
若下一步执行 EGD,设被合并的符号为
每条替换后的事实仍映成原来的
注意 EGD 步前后的事实集合不必按原符号构成包含链;不变量沿替换映射传递,不能把各阶段的原始事实简单并起来代替这个论证。
成功固定点为什么通用 ​
若有限执行成功返回
上一节的不变量对任意允许补全
确定答案的两个方向 ​
若
反过来,若所有补全都返回
正原子匹配能沿同态传递是证明的关键。否定与不等式不具备同一保证:目标模型可以多出事实,同态也可以把不同空值合并。因此不能把这条确定答案判据原样用于带否定或不等式的查询。
单步成本与总运行时间 ​
固定模式和有限规则集。令当前实例有
在事实成员查询为单位成本、规则固定的实现下,一次完整活跃性搜索有
这些都是当前一步的成本。新事实和空值可能使
参考资料
- Serge Abiteboul、Richard Hull、Victor Vianu,Foundations of Databases,第 10 章,1995 在线版,§10.1,pp. 217–218:依赖语法与 TGD、EGD 分类。
- Ronald Fagin、Phokion G. Kolaitis、Renée J. Miller、Lucian Popa,Data Exchange: Semantics and Query Answering,期刊预印本,§3.1 Definitions 3.1–3.2、Theorem 3.3、Lemma 3.4(PDF pp. 12–14),§4 Proposition 4.2(PDF p. 20):追赶步骤、有限成功后的通用解、同态不变量与合取查询确定答案。原文区分固定源实例与目标实例;本文对所有关系采用扩展语义,并在正文直接证明相应不变量与有限结论。
- Andreas Pieris,Advanced Topics in Foundations of Databases,2018/19,Lecture 3,第 12–24 张幻灯片:追赶示例、常量冲突、通用性质及有限实例语义的边界。