Chain-Split Evaluation in Deductive Databases.pdf
文本预览下载声明
Chain-Split Evaluation in Deductive DatabasesJiawei HanyAbstractMany popularly studied recursions in deductive databases can be compiled into one or a set of highly regularchain generating paths, each of which consists of one or a set of connected predicates. Previous studies onchain-based query evaluation in deductive databases take a chain generating path as an inseparable unit in theevaluation. However, some recursions, especially many functional recursions whose compiled chain consists ofinnitely evaluable function(s), should be evaluated by chain-split evaluation, which splits a chain generatingpath into two portions in the evaluation: an immediately evaluable portion and a delayed-evaluation portion.In this paper, the necessity of chain-split evaluation is examined from the points of view of both eciencyand nite evaluation, and three chain-split evaluation techniques: magic sets, buered evaluation and partialevaluation, are developed. Our study shows that chain-split evaluation is a primitive recursive query evaluationtechnique for dierent kinds of recursions, and it can be implemented eciently in deductive databases byextensions to the existing recursive query evaluation methods.Index Terms: deductive database, logic programming, query analysis and query optimization, query processing,recursive query evaluation.1 IntroductionMost linear recursions and many other kinds of recursions encountered in practice can be compiled into highlyregular chain forms [8, 9, 21]. Interesting recursive query evaluation techniques [2], such as transitive closurealgorithms [10], magic sets and counting [1], can be applied to the ecient evaluation of compiled chains indeductive databases. However, it is interesting to observe that some recursions, especially many recursionscontaining function symbols, may often be evaluated appropriately by a dierent evaluation technique: chain-split evaluation.Like many researchers [2, 21], we assume that a deductive database consists o
显示全部