The EXODUS optimizer generator
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Metainterpreters for expert system construction
Journal of Logic Programming
Inheritance as combination of horn clause theories
Inheritance hierarchies in knowledge representation and programming languages
Logic and objects
A calculus for the construction of modular Prolog programs
Journal of Logic Programming
An extended Warren abstract machine for the execution of structured logic programs
Journal of Logic Programming
A rule-based query optimizer with multiple search strategies
Data & Knowledge Engineering
Incomplete path expressions and their disambiguation
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Logical objects with constraints
ACM SIGPLAN Notices
OFL: a functional execution model for object query languages
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
System R: relational approach to database management
ACM Transactions on Database Systems (TODS)
The design and implementation of INGRES
ACM Transactions on Database Systems (TODS)
Logic for Problem Solving
Access path selection in a relational database management system
SIGMOD '79 Proceedings of the 1979 ACM SIGMOD international conference on Management of data
Reification: Reflection without metaphysics
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Cost distribution of search spaces in query optimization.
Cost distribution of search spaces in query optimization.
Hi-index | 0.00 |
The paper describes a rule-based query optimizer for object-oriented databases. The originality of the approach is through a multi-level logic programming used to model the variety of knowledge contained in the query optimizer in an explicit, declarative and transparent way. Our approach offers means of abstraction for expressing various kinds of knowledge involved in a query optimizer. It also offers techniques for structuring them according to both generality levels and knowledge content, i.e. meta-levels. We present a programming technique that allows to write modules which can be at various meta-levels. To illustrate these ideas, we show how multi-level programming can be used to model a query optimizer for an object-oriented database. Among the various kinds of knowledge involved, we have (besides the queries themselves - first or object level) techniques for query manipulations and transformation, as well as cost models (second or meta- level), techniques for combining transformations, search strategies, techniques for cost model selection (third or meta-meta- level), and optimization plans (fourth level). The optimizer architecture based on this model is presented.