Skip to main content

An Abstract Object-Oriented Query Execution Language

  • Conference paper
Database Programming Languages (DBPL-4)

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

What is an appropriate generalization of relational join to object-oriented query algebras? No satisfactory answer has yet been given; the difficulty of the question prompts us to address a different, though related question: What are appropriate abstractions for expressing object-oriented query execution plans? Our answer takes the form of a language that can serve as the interface between an optimizer and an execution engine. Our query execution language is designed to express arbitrary object-oriented queries, and to couch them in terms of efficient algorithms—such as join algorithms—when possible. By carefully choosing our query execution abstractions, we are able to optimize join-like queries in ways that had been inaccessible at the algebraic level. Yet the optimizations we achieve have an “algebraic flavor.” Indeed, the execution language may be thought of as a kind of low-level algebra; moreover, through its data abstraction facilities it may be extended with new types and operators in such a way that it acquires the functionality of a higher-level algebra. Our language thus creates a framework in which both the inputs and outputs of an optimizer can be expressed, and their semantics compared.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. M. Amadio and L. Cardelli. Subtyping recursive types. SRC Report #62, Digital Equipment Corporation, Aug. 1990.

    Google Scholar 

  2. A. W. Appel. Compiling with Continuations. Cambridge University Press, 1992.

    Google Scholar 

  3. M. Atkinson, P. Richard, and P. Trinder. Bulk types for large scale programming. In Schmidt and Stogny [34], pages 228–250.

    Google Scholar 

  4. C. Beeri and Y. Kornatzky. Algebraic optimization of object-oriented query languages. In S. Abiteboul and P. C. Kanellakis, editors, Proceedings of the Third International Conference on Database Theory, volume 470 of Lecture Notes in Computer Science, pages 72–88. Springer-Verlag, Dec. 1990.

    Google Scholar 

  5. R. Bird and P. Wadler. Introduction to Functional Programming. Prentice Hall, 1988.

    Google Scholar 

  6. V. Breazu-Tannen, P. Buneman, and S. Naqvi. Structural recursion as a query language. In Kanellakis and Schmidt [22], pages 9–19.

    Google Scholar 

  7. K. B. Bruce. A paradigmatic object-oriented programming language: Design, static typing and semantics. Technical Report CS-92–01, Williams College, Jan. 1992.

    Google Scholar 

  8. K. B. Bruce. Safe type checking in a statically-typed object-oriented programming language. In Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 285–298, Charleston, South Carolina, Jan. 1993.

    Google Scholar 

  9. P. Buneman, R. E. Frankel, and R. Nikhil. An implementation technique for database query languages. ACM Trans. Database Syst., 7 (2): 164–186, June 1982.

    Article  Google Scholar 

  10. P. Canning, W. Cook, W. Hill, and W. Olthoff. F-bounded polymorphism for object-oriented programming. In The Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 273–280, Imperial College, London, Sept. 1989.

    Chapter  Google Scholar 

  11. L. Cardelli. A pure calculus of subtyping, and applications (outline). In Kanellakis and Schmidt [22], pages 185–187.

    Google Scholar 

  12. L. Cardelli, S. Martini, J. C. Mitchell, and A. Scedrov. An extension of system F with subtyping. In T. Ito and A. R. Meyer, editors, Theoretical Aspects of Computer Software, volume 526 of Lecture Notes in Computer Science, pages 750–770, Sendai, Japan, Sept. 1991. Springer-Verlag.

    Chapter  Google Scholar 

  13. L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. ACM Comput. Surv., 17 (4), Dec. 1985.

    Google Scholar 

  14. S. Danforth and C. Tomlinson. Type theories and object-oriented programming. ACM Comput. Surv., 20 (1), Mar. 1988.

    Google Scholar 

  15. S. D. Daniels. Speaking in tongues: The language of Revelation. Technical Report CS/E 91–007, Oregon Graduate Institute of Science Technology, May 1990.

    Google Scholar 

  16. J. C. Freytag and N. Goodman. Rule-based translation of relational queries into iterative programs. In C. Zaniolo, editor, Proceedings of SIGMOD ‘86 International Conference on Management of Data, pages 206–214, Washington, D.C., May 1986.

    Google Scholar 

  17. A. Goldberg. Smalltalk-80, The Interactive Programming Environment. Addison-Wesley, 1984.

    Google Scholar 

  18. G. Graefe. Query evaluation techniques for large databases. ACM Comput. Surv., 25 (2), June 1993.

    Google Scholar 

  19. G. Graefe. Volcano, an extensible and parallel dataflow query processing system. IEEE Transactions on Knowledge and Data Engineering, 5 (5), Oct. 1993. To appear.

    Google Scholar 

  20. G. Graefe and W. J. McKenna. The volcano optimizer generator: Extensibility and efficient search. In Proceedings of the IEEE Conference on Data Engineering, pages 209–218, Vienna, Austria, Apr. 1993.

    Chapter  Google Scholar 

  21. M. Jarke and J. Koch. Query optimization in database systems. ACM Comput. Surv., 16 (2): 111–152, June 1984.

    Article  MathSciNet  MATH  Google Scholar 

  22. P. Kanellakis and J. W. Schmidt, editors. Database Programming Languages: Bulk Types C Persistent Data, The Third International Workshop, Nafplion, Greece, Aug. 1991. Morgan Kaufmann.

    Google Scholar 

  23. T. Keller and G. Graefe. The one-to-one match operator of the Volcano query processing system. Technical Report CS/E 89–009, Oregon Graduate Institute of Science Technology, June 1989.

    Google Scholar 

  24. P. Kelly. Functional Programming for Loosely-coupled Multiprocessors. The MIT Press, 1989.

    Google Scholar 

  25. B. Liskov, A. Snyder, R. Atkinson, and C. Schaffert. Abstraction mechanisms in CLU. Commun. ACM, 20 (8): 564–576, 1977.

    Article  MATH  Google Scholar 

  26. R. A. Lorie and J. F. Nilsson. An access specification language for a relational data base system. Computer Science Research Report RJ2218(30171), IBM Research Laboratory, San Jose, California, Apr. 1978.

    Google Scholar 

  27. D. Maier, S. Daniels, G. Graefe, T. Keller, W. McKenna, and B. Vance. Challenges for query processing in object-oriented databases. In J. C. Freytag, D. Maier, and G. Vossen, editors, Query Processing for Advanced Database Systems, pages 337–380. Morgan Kaufmann, 1993.

    Google Scholar 

  28. R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, 1990.

    Google Scholar 

  29. P. Mishra and M. H. Eich. Join processing in relational databases. ACM Comput. Surv., 24 (1): 63–113, Mar. 1992.

    Article  Google Scholar 

  30. J. C. Mitchell, F. Honsell, and K. Fisher. A lambda calculus of objects and method specialization. In 1993 IEEE Symposium on Logic in Computer Science, June 1993.

    Google Scholar 

  31. R. Morrison, A. Dearle, R. C. H. Connor, and A. L. Brown. An ad hoc approach to the implementation of polymorphism. ACM Trans. Prog. Lang. Syst., 13 (3): 342–371, July 1991.

    Article  Google Scholar 

  32. D. S. Parker, E. Simon, and P. Valduriez. SVP — a model capturing sets, streams, and parallelism. In L.-Y. Yuan, editor, Proceedings of the 18th International Conference on Very Large Data Bases, pages 115–126, Vancouver, Canada, Aug. 1992. Morgan Kaufmann.

    Google Scholar 

  33. J. H. Reppy. CML: A higher-order concurrent language. In Proceedings of the ACM SIGPLAN ‘81 Conference on Programming Language Design and Implementation, pages 293–305, Toronto, Ontario, Canada, June 1991.

    Chapter  Google Scholar 

  34. J. W. Schmidt and A. A. Stogny, editors. Next Generation Information System Technology, volume 504 of Lecture Notes in Computer Science, Kiev, USSR, Oct. 1990. First International East/West Database Workshop, Springer-Verlag.

    Google Scholar 

  35. G. M. Shaw and S. B. Zdonik. An object-oriented query algebra. In R. Hull, R. Morrison, and D. Stemple, editors, Proceedings of the Second International Workshop on Database Programming Languages, pages 103–112, Salishan Lodge, Gleneden Beach, Oregon, June 1989. Morgan Kaufmann.

    Google Scholar 

  36. N. C. Shu, B. C. Housel, R. W. Taylor, S. P. Ghosh, and V. Y. Lum. EXPRESS: A data EXtraction, Processing, and REStructuring System. ACM Trans. Database Syst., 2 (2): 134–174, June 1977.

    Article  Google Scholar 

  37. D. Stemple and T. Sheard. A recursive base for database programming primitives. In Schmidt and Stogny [34], pages 311–332.

    Google Scholar 

  38. B. Vance. Towards an object-oriented query algebra. Technical Report CS/E 91–008, Oregon Graduate Institute of Science Technology, Jan. 1992.

    Google Scholar 

  39. S. L. Vandenberg and D. J. DeWitt. Algebraic support for complex objects with arrays, identity, and inheritance. In J. Clifford and R. King, editors, Proceedings of the 1991 ACM SIGMOD International Conference on Management of Data, pages 158–157, Denver, Colorado, June 1991.

    Chapter  Google Scholar 

  40. D. A. Watt and P. Trinder. Towards a theory of bulk types. Technical Report FIDE/91/26, FIDE, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vance, B. (1994). An Abstract Object-Oriented Query Execution Language. In: Beeri, C., Ohori, A., Shasha, D.E. (eds) Database Programming Languages (DBPL-4). Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3564-7_11

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3564-7_11

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19853-6

  • Online ISBN: 978-1-4471-3564-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics