Optimizing object queries using an effective calculus
- 1 December 2000
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Database Systems
- Vol. 25 (4) , 457-516
- https://doi.org/10.1145/377674.377676
Abstract
Object-oriented databases (OODBs) provide powerful data abstractions and modeling facilities, but they generally lack a suitable framework for query processing and optimization. The development of an effective query optimizer is one of the key factors for OODB systems to successfully compete with relational systems, as well as to meet the performance requirements of many nontraditional applications. We propose an effective framework with a solid theoretical basis for optimizing OODB query languages. Our calculus, called the monoid comprehension calculus, captures most features of ODMG OQL, and is a good basis for expressing various optimization algorithms concisely. This article concentrates on query unnesting (also known as query decorrelation), an optimization that, even though it improves performance considerably, is not treated properly (if at all) by most OODB systems. Our framework generalizes many unnesting techniques proposed recently in the literature, and is capable of removing any form of query nesting using a very simple and efficient algorithm. The simplicity of our method is due to the use of the monoid comprehension calculus as an intermediate form for OODB queries. The monoid comprehension calculus treats operations over multiple collection types, aggregates, and quantifiers in a similar way, resulting in a uniform method of unnesting queries, regardless of their type of nesting.Keywords
This publication has 27 references indexed in Scilit:
- Query unnesting in object-oriented databasesACM SIGMOD Record, 1998
- A query language for multidimensional arraysACM SIGMOD Record, 1996
- Principles of programming with complex objects and collection typesTheoretical Computer Science, 1995
- Shoring up persistent applicationsACM SIGMOD Record, 1994
- Comprehension syntaxACM SIGMOD Record, 1994
- A general framework for the optimization of object-oriented queriesACM SIGMOD Record, 1992
- A FAD for data intensive applicationsIEEE Transactions on Knowledge and Data Engineering, 1992
- The story of O/sub 2/IEEE Transactions on Knowledge and Data Engineering, 1990
- A database language for sets, lists and tablesInformation Systems, 1986
- On optimizing an SQL-like nested queryACM Transactions on Database Systems, 1982