On compiling queries in recursive first-order databases
Journal of the ACM (JACM)
Magic sets and other strange ways to implement logic programs (extended abstract)
PODS '86 Proceedings of the fifth ACM SIGACT-SIGMOD symposium on Principles of database systems
Data independent recursion in deductive databases
PODS '86 Proceedings of the fifth ACM SIGACT-SIGMOD symposium on Principles of database systems
An amateur's introduction to recursive query processing strategies
SIGMOD '86 Proceedings of the 1986 ACM SIGMOD international conference on Management of data
PODS '87 Proceedings of the sixth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Universality of data retrieval languages
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Optimizing function-free recursive inference rules
Optimizing function-free recursive inference rules
Recursive Linear Recursion to Transitive Closure
Recursive Linear Recursion to Transitive Closure
Compiling separable recursions
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
Distributed processing of logic programs
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
Efficient evaluation of right-, left-, and multi-linear rules
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Estimating the size of generalized transitive closures
VLDB '89 Proceedings of the 15th international conference on Very large data bases
Argument reduction by factoring
VLDB '89 Proceedings of the 15th international conference on Very large data bases
Necessary and sufficient conditions to linearize doubly recursive programs in logic databases
ACM Transactions on Database Systems (TODS)
On tree-based techniques for query evaluation
PODS '92 Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Transitive closure algorithms based on graph traversal
ACM Transactions on Database Systems (TODS)
Regular path queries with constraints
PODS '97 Proceedings of the sixteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Graph-theoretic methods in database theory
PODS '90 Proceedings of the ninth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
GraphLog: a visual formalism for real life recursion
PODS '90 Proceedings of the ninth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A generalized transitive closure for relational queries
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Counting methods for cyclic relations
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A data structure for arc insertion and regular path finding
SODA '90 Proceedings of the first annual ACM-SIAM symposium on Discrete algorithms
IEEE Transactions on Knowledge and Data Engineering
Classification and Compilation of Linear Recursive Queries in Deductive Databases
IEEE Transactions on Knowledge and Data Engineering
A Study on the Structure of Linear Recursion
IEEE Transactions on Knowledge and Data Engineering
Chain-Split Evaluation in Deductive Databases
IEEE Transactions on Knowledge and Data Engineering
Evaluating Recursive Queries in Distributed Databases
IEEE Transactions on Knowledge and Data Engineering
Efficient Transitive Closure Algorithms
VLDB '88 Proceedings of the 14th International Conference on Very Large Data Bases
Hi-index | 0.00 |
The performance of systems with recursive query languages can be improved by recognizing simple, easily evaluable classes of recursions and using algorithms tailored to these classes whenever possible. In this paper we identify a useful subset of recursive definitions, the one-sided recursions. We show how to detect one-sided recursions, and give two simple evaluation algorithms that cover one-sided definitions in that for any selection on a one-sided definition, at least one of the two algorithms will apply. These algorithms have simple termination conditions, maintain minimal state and use selections on the recursively defined relation whenever possible. We show that there are no similar algorithms for many-sided recursions We also prove that it is undecidable whether an arbitrary definition has an equivalent one-sided definition. However, we do present a procedure that converts many potentially one-sided recursions to one-sided form, and prove it complete for a useful class of recursions.