Optimization of recursive data-base query languages
Recently, logic-based languages have received a lot of attention both in logic programming systems and in extended relational data-base systems. If these systems are to be practical, they will require powerful optimization techniques, especially for recursions; this thesis presents three such optimizations. First considered is how to detect bounded recursions, that is, recursions that can be replaced by equivalent nonrecursive definitions. By varying the problem parameters, one can produce classes of recursions for which the bounded recursion problem ranges from linearly decidable to NP-hard to undecidable. Next, removing redundant predicates from unbounded recursion is discussed. It is proved that detecting redundant predicates is undecidable, but an algorithm is given to detect and remove redundant predicates that is complete for a large subset of recursions. Finally, a useful class of recursions, the one-sided recursions, are defined. It is shown how to detect one-sided recursions; two simple evaluation algorithms for one-sided recursions are given; and some properties of one-sided recursions that make evaluating selections on one-sided recursions particularly simple are discussed.
- Research Organization:
- Stanford Univ., CA (USA)
- OSTI ID:
- 6580948
- Country of Publication:
- United States
- Language:
- English
Similar Records
Recursive rational choice
Techniques for the distributed implementation of recursive programs