Selection of Processing Strategies for Different Recursive Queries

Abstract Logic database queries are often inquired in different ways, which in turn may require different processing strategies. We study the possible strategies of processing recursive queries and the methods of selecting such strategies. Recursive query processing strategies are classified into four classes: non-recursive, total closure, query closure and existence checking, which can be further divided into binary and unary algorithms. A method is developed for selecting appropriate strategies based on IDB compilation results, variable instantiations and inquiries of query predicates, and database statistics. Primitive single- and multi-chain recursions are taken as typical examples in our analysis, however, the principles discussed here are applicable to more complex recursions as well.