查询提升:异构嵌套集合的语言集成查询
1. 引言
在数据库编程和语言集成查询领域,对嵌套集合的查询一直是一个重要且具有挑战性的问题。传统的查询技术在处理嵌套集合时存在诸多不足,如查询分解技术无法表达去重等常见操作,查询扁平化技术虽然更具表达力但缺乏详细的正确性证明,且两者都难以理解、实现和扩展。因此,需要一种新的、可证明正确的方法来处理嵌套异构集合的查询。
2. 相关概念与定义
2.1 符号定义
以下是一些重要的符号定义:
- (X : bΞ ≜X)(如果 (X) 不是索引)
- (⟨−−−→ℓ= ˘N⟩: ⟨−−→ℓ: τ⟩Ξ ≜⟨−−−−−−−−−→ℓ= ˘N : τΞ⟩)
- (⟨−−−→ℓ= ˘N⟩.ℓi : τΞ ≜Ni : τΞ)
- (index(ϕ, −→V ) : {τ}Ξ ≜.{
{p.2 : τΞ} | p ←Ξ(ϕ), p.1 = ⟨−→V ⟩})
- (index(ϕ, −→V ) : τ Ξ ≜/p.2 : τΞ | p ←Ξ(ϕ), p.1 = ⟨−→V ⟩)
2.2 shredded 值集的定义
设 (norm) 表示 (NRCλ(Set, Bag)) 规范化,(S) 表示关系规范化形式的评估。对于一个 shredding 环境 (\Phi),对应的 shredded 值集 (\Xi) 定义如下:
(\Xi ≜{ϕ →S(norm(⌊M⌋))|[ϕ →M] ∈Φ})
评估 (S) 通常由数据库管理系统(DBMS)在将 (NRCλ(Set, Bag)) 查询转换为 SQL 后执行,结
超级会员免费看
订阅专栏 解锁全文
1083

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



