Abstract:
Object-oriented databases (OODBs) provide powerful data abstractions and modeling facilities but they usually lack a suitable framework for query processing and optimization. Even though there is an increasing number of recent proposals on OODB query optimization, only few of them are actually focused on query optimization in the presence of object identity and destructive updates, features often supported by most realistic OODB languages. This paper presents a formal framework for optimizing object-oriented queries in the presence of side effects. These queries may contain object updates at any place and in any form. We present a language extension to the monoid comprehension calculus to express these object-oriented features and we give a formal meaning to these extensions. Our method is based on denotational semantics, which is often used to give a formal meaning to imperative programming languages. The semantics of our language extensions is expressed in terms of our monoid calculus, without the need of any fundamental change to our basic framework. Our method not only maintains referential transparency, which allows us to do meaningful query optimization, but it is also practical for optimizing OODB queries since it allows the same optimization techniques applied to regular queries to be used with minimal changes for OODB queries with updates. 1
Citations
|
1128
|
Monads for functional programming
– Wadler
- 1992
|
|
496
|
S.: The Implementation of Functional Programming Languages
– Jones
- 1987
|
|
393
|
Comprehending monads
– Wadler
- 1992
|
|
367
|
The Object Database Standard: ODMG-93
– Cattell
- 1994
|
|
335
|
ML for the working programmer
– Paulson
- 1991
|
|
101
|
Elements of Functional Programming
– Reade
- 1989
|
|
81
|
A general framework for the optimization of object-oriented queries
– Cluet, Delobel
- 1992
|
|
71
|
Nested queries in object bases
– Cluet, Moerkotte
- 1993
|
|
64
|
Advanced query processing in object bases using access support relations
– Kemper, Moerkotte
- 1990
|
|
59
|
Towards an effective calculus for object query languages
– Fegaras, Maier
- 1995
|
|
56
|
Detecting global variables in denotational specifications
– Schmidt
- 1985
|
|
39
|
A Recursive Algebra and Query Optimization for Nested Relations
– Colby
- 1989
|
|
34
|
Supporting multiple view maintenance policies
– Colby, Kawaguchi, et al.
- 1997
|
|
31
|
Optimizing object queries using an effective calculus
– Fegaras, Maier
- 2000
|
|
24
|
Efficient evaluation of aggregates on bulk types
– Cluet, Moerkotte
- 1995
|
|
20
|
Rationale for the design of persistence and query processing facilities in the database programming language O
– Agrawal, Gehani
- 1989
|
|
19
|
Query Unnesting in Object-Oriented Databases
– Fegaras
- 1998
|
|
19
|
Representing Object Identity in a Pure Functional Language
– Ohori
- 1990
|
|
12
|
An Algebraic Framework for Physical OODB Design
– Fegaras, Maier
|
|
9
|
Extending functional database languages to update completeness
– Sutton, Small
- 1995
|
|
8
|
A Transformation-Based Approach to Optimizing Loops in database Programming Languages
– Lieuwen, DeWitt
- 1992
|
|
7
|
A Keying Method for a Nested Relational Database Management System
– Ozsoyoglu, Wang
- 1992
|
|
5
|
An Experimental Optimizer for OQL. University of Texas at Arlington Technical Report TR-CSE-97-007. Available at http://www-cse.uta.edu/��fegaras/oqlopt.ps.gz
– Fegaras
- 1997
|
|
2
|
A Uniform Calculus for Collection Types. Oregon Graduate Institute Technical Report 94-030. Available by anonymous ftp from cse.ogi.edu:/pub/crml/tapos.ps.Z
– Fegaras
|