Abstract

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.

Highlights

  • Query optimization in extended relational, object-oriented and deductive systems is one of the key issues in the current database literature

  • Query optimization can be divided in two phases [13]: query rewriting transforms queries into equivalent simpler ones with better expected performance and query planning primarily determines the method for accessing objects

  • The diversity of the tasks that should be integrated in a query optimizer makes it one of the most complex components to write in a DBMS

Read more

Summary

Introduction

Query optimization in extended relational, object-oriented and deductive systems is one of the key issues in the current database literature. We find: (1) techniques for query manipulation and transformation, (2) control strategies, (3) cost models, (4) description of classes of queries, (5) optimization goals, and (6) fine and large granularity of optimization They interact in various ways; not all of them are at the same level. Our approach aims to achieve the following properties regarding the optimization: recognition of hierarchical levels within the relevant knowledge, structuralization of optimization knowledge which enables better understanding, readability and maintenance, extensibility of the optimizer (possibility to improve optimizer as the field evolves), easy combining of different methods and techniques by specifying alternative modules and meta-modules which control their use in the optimization process, and development and experimental testing of new approaches (e.g. new transformation rules and strategies which are domain dependent)

A Programming Technique for Implementing Multi-level Logic Programs
Query Optimizer Architecture
Combining Modules in Multi-level Logic Programming
Conclusions
Conjunction II
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.