探索关系数据库:简单连接查询与功能依赖挖掘
在关系数据库的探索中,简单连接查询的发现是一种可行且有吸引力的方法。本文将介绍相关的形式模型、查询比较方法,以及用于挖掘频繁查询的 Conqueror+ 算法,并深入探讨功能依赖的处理和发现。
形式模型
背景
考虑一个固定的属性集 U 和一个关系数据库模式 D = {R1, …, Rn},其中每个 Ri 都与 U 的一个子集相关联,称为 Ri 的模式,记为 sch(Ri)。假设对于所有不同的 i 和 j,sch(Ri) ∩ sch(Rj) = ∅,为了明确这一假设,将 sch(Ri) 中的每个属性 A 表示为 Ri.A。
同时,假设给定了 D 上的功能依赖。每个 Ri 都与 sch(Ri) 上的一组功能依赖相关联,记为 FDi,D 中定义的所有功能依赖的集合记为 FD。
我们关注的查询是连接投影 - 选择 - 连接查询,其连接使用形式为 Ri.A = Rj.A′ 的选择条件的合取来表示。这种连接条件 F 会诱导 U 的一个划分 blocks(F),其中每个块 β 是一个最大的属性集,使得对于 β 中的所有 Ri.A 和 Rj.A′,Ri.A = Rj.A′ 是 F 的结果。在这种情况下,我们说 Ri 和 Rj 通过 F 连接。
定义 1 :设 R 为 R1 × … × Rn 的笛卡尔积,Q = πXσF R,其中 F = ⋊⋉(Q) ∧ σ(Q),⋊⋉(Q) 和 σ(Q) 分别是形式为 Ri.A = Rj.A′ 和 Rk.A = a 的选择条件的合取。如果 X 或 σ(Q) 中出现的所有关系名通过 ⋊⋉(Q) 连接,则 Q = πXσF
超级会员免费看
订阅专栏 解锁全文
4665

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



