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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
R. M. Amadio and L. Cardelli. Subtyping recursive types. SRC Report #62, Digital Equipment Corporation, Aug. 1990.
A. W. Appel. Compiling with Continuations. Cambridge University Press, 1992.
M. Atkinson, P. Richard, and P. Trinder. Bulk types for large scale programming. In Schmidt and Stogny [34], pages 228–250.
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.
R. Bird and P. Wadler. Introduction to Functional Programming. Prentice Hall, 1988.
V. Breazu-Tannen, P. Buneman, and S. Naqvi. Structural recursion as a query language. In Kanellakis and Schmidt [22], pages 9–19.
K. B. Bruce. A paradigmatic object-oriented programming language: Design, static typing and semantics. Technical Report CS-92–01, Williams College, Jan. 1992.
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.
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.
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.
L. Cardelli. A pure calculus of subtyping, and applications (outline). In Kanellakis and Schmidt [22], pages 185–187.
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.
L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. ACM Comput. Surv., 17 (4), Dec. 1985.
S. Danforth and C. Tomlinson. Type theories and object-oriented programming. ACM Comput. Surv., 20 (1), Mar. 1988.
S. D. Daniels. Speaking in tongues: The language of Revelation. Technical Report CS/E 91–007, Oregon Graduate Institute of Science Technology, May 1990.
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.
A. Goldberg. Smalltalk-80, The Interactive Programming Environment. Addison-Wesley, 1984.
G. Graefe. Query evaluation techniques for large databases. ACM Comput. Surv., 25 (2), June 1993.
G. Graefe. Volcano, an extensible and parallel dataflow query processing system. IEEE Transactions on Knowledge and Data Engineering, 5 (5), Oct. 1993. To appear.
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.
M. Jarke and J. Koch. Query optimization in database systems. ACM Comput. Surv., 16 (2): 111–152, June 1984.
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.
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.
P. Kelly. Functional Programming for Loosely-coupled Multiprocessors. The MIT Press, 1989.
B. Liskov, A. Snyder, R. Atkinson, and C. Schaffert. Abstraction mechanisms in CLU. Commun. ACM, 20 (8): 564–576, 1977.
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.
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.
R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, 1990.
P. Mishra and M. H. Eich. Join processing in relational databases. ACM Comput. Surv., 24 (1): 63–113, Mar. 1992.
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.
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.
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.
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.
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.
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.
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.
D. Stemple and T. Sheard. A recursive base for database programming primitives. In Schmidt and Stogny [34], pages 311–332.
B. Vance. Towards an object-oriented query algebra. Technical Report CS/E 91–008, Oregon Graduate Institute of Science Technology, Jan. 1992.
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.
D. A. Watt and P. Trinder. Towards a theory of bulk types. Technical Report FIDE/91/26, FIDE, 1991.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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