Because first-order relational database query languages lack expressive power [AhU179], the use of recursion as a query primitive has received increasing attention in the database community [ChHa85], [GMN84], [Ullm85]. Unfortunately, the addition of recursion to a query language carries a heavy penalty when we come to query optimization, because it has been discovered [Vard88], [GMSV87] that many natural questions one would like answered about general recursive programs, even in the relatively simple Datalog context, are either combinatorially difficult [SaYaSO] or even undecidable [Vard88]. Recent authors have therefore turned to the identification of restricted classes of recursive programs for which particular optimizations can be performed efficiently [Ioan89], [Sar89a], [RSUV89] and much useful effort has been made to isolate what it is that makes a given program difficult to optimize. Here, we shall take as our starting point two ideas from recent query optimization research, program boundedness and rule commutativity, and we shall hope to explain how classical ideas from mathematical semigroup theory can be used not only to codify some previous results in the query optimization literature, but also how it can give us new results about query optimization and point directions for future research.
Unfortunately, ACM prohibits us from displaying non-influential references for this paper.
To see the full reference list, please visit http://dl.acm.org/citation.cfm?id=298553.