UnQL公司

UnQL:一种基于结构递归的半结构化数据查询语言和代数。本文提出了结构化递归作为半结构化数据和XML查询语言的语法和语义基础。我们描述了一种基于模式匹配的简单而强大的查询语言,并说明它可以使用结构化递归来表示,这种递归是作为自顶向下的递归函数引入的,类似于在XML树上定义XSL的方式。对于循环数据,结构递归可以用两种等价的方式定义:一种是自上而下计算数据并记住所有调用以避免无限循环的递归函数;另一种是只使用传统关系代数运算符并行处理整个数据的批量求值。后者使关系查询中的优化技术应用于结构递归成为可能。我们证明了两个结构递归查询的组合可以表示为一个这样的查询,这是中介系统优化方法的基础。建立了其它几个形式化性质:结构递归可以用传递闭包扩展的一阶逻辑表示;它的数据复杂性是PTIME;在关系数据上,它是关系演算的保守扩展。底层数据模型基于值相等,正式定义为交互模拟。结构递归对于值相等是不变的。