Efficient Management of Object-Oriented Queries with Late Binding

To support new application areas for database systems such as mechanical engineering applications or office automation applications a powerful data model is required that supports the modelling of complex data, e.g. the object-oriented model. The object-oriented model supports subtyping, inheritance, operator overloading and overriding. These are features to assist the programmer in managing the complexity of the data being modelled. Another desirable feature of a powerful data model is the ability to use inverted functions in the query language, i.e. for an arbitrary function call fn(x)=y, retrieve the arguments x for a given result y. Optimization of database queries is important in a large database system since query optimization can reduce the execution cost dramatically. The optimization considered here is a cost-based global optimization where all operations are assigned a cost and a way of a priori estimating the number of objects in the result. To utilize available indexes the optimizer has full access to all operations used by the query, i.e. its implementation. The object-oriented data modelling features lead to the requirement of having late bound functions in queries which require special query processing strategies to achieve good performance. This is so because late bound functions obstruct global optimization since the implementation of a late bound function cannot be accessed by the optimizer and available indexes remain hidden within the function body. In this thesis the area of query processing is described and an approach to the management of late bound functions is presented which allows optimization of invertible late bound functions where available indexes are utilized even though the function is late bound. This ability provides a system with support for the modelling of complex relations and efficient execution of queries over such complex relations.

[1]  Staffan Flodin,et al.  An Incremental Query Compiler with Resolution of Late Binding , 1994 .

[2]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[3]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[4]  Elisa Bertino,et al.  Object-Oriented Query Languages: The Notion and the Issues , 1992, IEEE Trans. Knowl. Data Eng..

[5]  O. Deux,et al.  The Story of O2 , 1990, IEEE Trans. Knowl. Data Eng..

[6]  Eric Amiel,et al.  Supporting Explicit Disambiguation of Multi-Methods , 1996, ECOOP.

[7]  Volker Turau,et al.  Efficient Implementation of Multi-Methods through static analysis , 1995 .

[8]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[9]  R. G. G. Cattell,et al.  The Object Database Standard: ODMG-93 , 1993 .

[10]  Tore Risch,et al.  Processing Object-Oriented Queries with Invertible Late Bound Functions , 1995, VLDB.

[11]  Paris C. Kanellakis,et al.  Introduction to the Data Model , 1992, Building an Object-Oriented Database System, The Story of O2.

[12]  E. F. Codd,et al.  A Relational Model for Large Shared Data Banks , 1970 .

[13]  Arun N. Swami,et al.  Optimization of large join queries: combining heuristics and combinatorial techniques , 1989, SIGMOD '89.

[14]  Gary T. Leavens,et al.  Typechecking and modules for multi-methods , 1994, OOPSLA 1994.

[15]  François Bancilhon,et al.  ODMG-93: The Object Database Standard , 1994, IEEE Data Eng. Bull..

[16]  Alan R. Simon,et al.  Understanding the New SQL: A Complete Guide , 1993 .

[17]  R. G. G. Cattell,et al.  Object Data Management: Object-Oriented and Extended Relational Database Systems (Revised Edition) , 1991 .

[18]  David Maier,et al.  Challenges for Query Processing in Object-Oriented Databases , 1991, Query Processing for Advanced Database Systems.

[19]  Michael Stonebraker,et al.  Implementation of integrity constraints and views by query modification , 1975, SIGMOD '75.

[20]  Jay Banerjee,et al.  Data model issues for object-oriented applications , 1987, TOIS.

[21]  Tore Risch,et al.  AMOS - An Architecture for Active Mediators , 1993, NGITS.

[22]  David J. DeWitt,et al.  The Object-Oriented Database System Manifesto , 1994, Building an Object-Oriented Database System, The Story of O2.

[23]  Fernando Vélez,et al.  O2, an Object-Oriented Data Model , 1992, Building an Object-Oriented Database System, The Story of O2.

[24]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[25]  Olivier Gruber,et al.  Optimizing Multi-Method Dispatch Using Compressed Dispatch Tables , 1994, OOPSLA.

[26]  Michael J. Carey,et al.  Programming constructs for database system implementation in EXODUS , 1987, SIGMOD '87.

[27]  Gary T. Leavens,et al.  Typechecking and Modules for Multimethods , 1995, ACM Trans. Program. Lang. Syst..

[28]  Jay Banerjee,et al.  Queries in object-oriented databases , 1988, Proceedings. Fourth International Conference on Data Engineering.

[29]  Oscar Nierstrasz,et al.  A Survey of Object-Oriented Concepts , 1989, Object-Oriented Concepts, Databases, and Applications.

[30]  R. G. Cattell Object Data Management: Object-Oriented and Extended , 1994 .

[31]  Roberto Zicari,et al.  A framework for schema updates in an object-oriented database system , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[32]  Tore Risch,et al.  Main Memory Oriented Optimization of OO Queries Using Typed Datalog with Foreign Predicates , 1992, IEEE Trans. Knowl. Data Eng..

[33]  C. J. Date,et al.  The third manifesto , 1995, SGMD.

[34]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.

[35]  David J. DeWitt,et al.  Shoring up persistent applications , 1994, SIGMOD '94.

[36]  Bruce G. Lindsay,et al.  Static type checking of multi-methods , 1991, OOPSLA '91.

[37]  Michael Stonebraker,et al.  Predicate migration: optimizing queries with expensive predicates , 1992, SIGMOD Conference.

[38]  Daniel G. Bobrow,et al.  CommonLoops: merging Lisp and object-oriented programming , 1986, OOPLSA '86.

[39]  David J. DeWitt,et al.  A data model and query language for EXODUS , 1988, SIGMOD '88.

[40]  David J. DeWitt,et al.  Algebraic support for complex objects with arrays, identity, and inheritance , 1991, SIGMOD '91.

[41]  M. Tamer Özsu,et al.  Queries and query processing in object-oriented database systems , 1990, TOIS.

[42]  E. F. Codd,et al.  Further Normalization of the Data Base Relational Model , 1971, Research Report / RJ / IBM / San Jose, California.

[43]  Patricia G. Selinger,et al.  Access path selection in a relational database management system , 1979, SIGMOD '79.

[44]  Michael Stonebraker,et al.  The POSTGRES Data Model , 1987, Research Foundations in Object-Oriented and Semantic Database Systems.

[45]  Stanley B. Zdonik Object-oriented data model , 1990 .

[46]  Niklaus Wirth,et al.  Algorithms & data structures , 1985 .

[47]  David Jordan,et al.  The Object Database Standard: ODMG 2.0 , 1997 .

[48]  Stanley B. Zdonik,et al.  A query algebra for object-oriented databases , 1990, [1990] Proceedings. Sixth International Conference on Data Engineering.

[49]  Guy Bernard,et al.  The O2 Object Manager: An Overview , 1989, Building an Object-Oriented Database System, The Story of O2.

[50]  Yannis E. Ioannidis,et al.  Randomized algorithms for optimizing large join queries , 1990, SIGMOD '90.

[51]  Won Kim,et al.  Features of the ORION Object-Oriented Database System , 1989, Object-Oriented Concepts, Databases, and Applications.

[52]  李幼升,et al.  Ph , 1989 .

[53]  M. Tamer Özsu,et al.  Query Optimization and Execution Plan Generation in Object-Oriented Data Management Systems , 1995, IEEE Trans. Knowl. Data Eng..

[54]  François Bancilhon,et al.  Building an Object-Oriented Database System, The Story of O2 , 1992 .

[55]  Goetz Graefe,et al.  Optimization of dynamic query evaluation plans , 1994, SIGMOD '94.

[56]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[57]  Andrew P. Black,et al.  Object structure in the Emerald system , 1986, OOPLSA '86.

[58]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[59]  Stanley B. Zdonik,et al.  Object-Oriented Queries: Equivalence and Optimization , 1989, DOOD.

[60]  Kevin Wilkinson,et al.  Overview of the Iris DBMS , 1989, Research Foundations in Object-Oriented and Semantic Database Systems.

[61]  David W. Shipman The functional data model and the data language DAPLEX , 1979, SIGMOD '79.

[62]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[63]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[64]  Umeshwar Dayal,et al.  Queries and Views in an Object-Oriented Data Model , 1989, DBPL.

[65]  James L. Arbuckle,et al.  Amos User''s Guide , 1995 .