Skip to main content
Log in

Optimizing Queries with Object Updates

  • Published:
Journal of Intelligent Information Systems Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Agrawal, R. and Gehani N. (1989). Rationale for the design of persistence and query processing facilities in the database programming language O++. Second International Workshop on Database Programming Languages (pp. 25–40). Salishan, Oregon: Morgan Kaufmann.

    Google Scholar 

  • Buneman, P., Libkin, L., Suciu, D., Tannen, V., and Wong, L. (1994). Comprehension Syntax. SIGMOD Record, 23(1), 87–96.

    Google Scholar 

  • Cattell, R. (1994). The Object Database Standard: ODMG-93. Morgan Kaufmann.

  • Cluet, S. and Delobel, C. (1994). Ageneral framework for the optimization of object-oriented queries. Proceedings of the ACM-SIGMOD International Conference on Management of Data (pp. 383–392). San Diego, CA.

  • Cluet, S. and Moerkotte, G. (1995a). Efficient Evaluation of Aggregates on Bulk Types. Technical report, Aachen University of Technology, Technical Report 95–05.

  • Cluet, S. and Moerkotte, G. (1995b). Nested queries in object bases. Fifth International Workshop on Database Programming Languages. Gubbio, Italy.

  • Colby, L.S. (1989). A recursive algebra and query optimization for nested relations. Proceedings of the ACM SIGMOD International Conference on Management of Data (pp. 273–283). Portland, Oregon.

  • Colby, L., Kawaguchi, A., Lieuwen, D., Mumick, I., and Ross, K.A. (1997). Supporting multiple viewmaintenance policies. Proceedings of the ACM SIGMOD Conference on Management of Data (pp. 405–416). Tucson, Arizona.

  • Daniels, S., Graefe, G., Keller, T., Maier, D., Schmidt, D., and Vance, B. (1991). Query Optimization in Revelation, an Overview. IEEE Data Eng. Bull., 14(2), 58.

    Google Scholar 

  • Fegaras, L. (1994). 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, L. (1997). An Experimental Optimizer for OQL. University of Texas at Arlington Technical Report TR-CSE-97-007. Available at http://lambda.uta.edu/oqlopt.ps.gz.

  • Fegaras, L. (1998). Query unnesting in object-oriented databases. Proceedings of the ACMSIGMOD International Conference on Management of Data (pp. 49–60). Seattle, Washington.

  • Fegaras, L. and Maier, D. (1995). Analgebraic framework for physical OODB design. Fifth International Workshop on Database Programming Languages. Gubbio, Italy.

  • Fegaras, L. and Maier, D. (1998). Towards an effective calculus for object query languages. Proceedings of the ACM SIGMOD International Conference on Management of Data (pp. 47–58). San Jose, CA.

  • Fegaras, L. and Maier, D. (1998). Optimizing object queries using an effective calculus. Submitted to TODS. Available at http://lambda.uta.edu/monoid.ps.gz.

  • Gupta, A. and Mumick, I.S. (1995). Maintenance of Materialized Views: Problems, Techniques, and Applications. Data Engineering Bulletin, 18(2), 3–18.

    Google Scholar 

  • Kemper, A. and Moerkotte, G. (1990). Advanced query processing in object bases using access support relations. Proceedings of the Sixteenth International Conference on Very Large Databases (pp. 290–301). Brisbane, Australia: Morgan Kaufmann.

    Google Scholar 

  • Lieuwen, D. and DeWitt, D. (1992). A transformation-based approach to optimizing loops in database programming languages. Proceedings of the ACM-SIGMOD International Conference on Management of Data (pp. 91–100). San Diego, CA.

  • Ohori, A. (1990). Representing object identity in a pure functional language. International Conference on Database Theory (pp. 41–55). Paris, France: Springer-Verlag.

    Google Scholar 

  • Ozsoyoglu, Z. and Wang, J. (1992). A keying method for a nested relational database management system. Proc. IEEE CS Intl. Conf. No. 8 on Data Engineering. Tempe, AZ.

  • Paulson, L. (1991). ML for the Working Programmers, Cambridge University Press.

  • Peyton Jones, Simon L. (1987). The Implementation of Functional Programming Languages, Prentice-Hall.

  • Reade, C. (1989). Elements of Functional Programming, Addison Wesley.

  • Schmidt, D. (1985). Detecting Global Variables in Denotational Specifications. ACM Transactions on Programming Languages and Systems, 7(2), 299–310.

    Google Scholar 

  • Sutton, D. and Small, C. (1995). Extending functional database languages to update completeness. BNCOD13— Thirteenth British National Conference on Databases.

  • Wadler, P. (1990). Comprehending monads. Proceedings of the ACM Symposium on Lisp and Functional Programming (pp. 61–78). Nice, France.

  • Wadler, P. (1992). The essence of functional programming. Proceedings of the Nineteenth ACM Symposium on Principles of Programming Languages (pp. 1–14). Albuquerque, NM.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Fegaras, L. Optimizing Queries with Object Updates. Journal of Intelligent Information Systems 12, 219–242 (1999). https://doi.org/10.1023/A:1008757010516

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008757010516

Navigation