An Execution Model for Cpl+

Query languages and their optimizations have been a very important issue in the database community. Languages for updating databases, however, have not been studied to the same extent, although they are clearly important since databases must change over time. While update languages for the relational model are quite simple and provide little opportunity for optimizations, update languages for complex value databases turn out to be more challenging. CPL+ is a language for updating complex value databases, based on primitive values, records, variants, and collections. The syntax of CPL+ is concise in that only the parts of the database that change are speciied. Furthermore, powerful optimization rules are available. In this report, we show the correctness of the optimization rules. Furthermore, we describe an execution model for CPL+ together with the underlying abstract storage model for a complex value database. We develop a formal framework for describing the workspace of updates-i.e. the set of physical objects that are accessed or updated within an update. Based on this notion, we analyse optimizations and present a selection of proofs that show that the rewriting rules are indeed cost reducing.

[1]  Serge Abiteboul,et al.  Updates, A New Frontier , 1988, ICDT.

[2]  Carolyn L. Talcott,et al.  Reasoning About Object Systems in VTLoE , 1995, Int. J. Found. Comput. Sci..

[3]  John C. Reynolds,et al.  The essence of ALGOL , 1997 .

[4]  Victor Vianu,et al.  Tractable query languages for complex object databases , 1991, PODS '91.

[5]  Stanley B. Zdonik,et al.  Type Evolution in an Object-Oriented Database , 1987, Research Foundations in Object-Oriented and Semantic Database Systems.

[6]  Fabrizio Ferrandina,et al.  Schema and Database Evolution in the O2 Object Database System , 1995, VLDB.

[7]  John F. Roddick,et al.  Schema evolution in database systems: an annotated bibliography , 1992, SGMD.

[8]  Raymond Reiter,et al.  On Specifying Database Updates , 1995, J. Log. Program..

[9]  Gabriel M. Kuper,et al.  Updating Logical Databases , 1986, Adv. Comput. Res..

[10]  S. B. DavidsonDept Updating Complex Value Databases , 1998 .

[11]  Limsoon Wong,et al.  BioKleisli: a digital library for biomedical researchers , 1997, International Journal on Digital Libraries.

[12]  Elisa Bertino,et al.  Transactions and Updates in Deductive Databases , 1997, IEEE Trans. Knowl. Data Eng..

[13]  Weidong Chen,et al.  Declarative updates of relational databases , 1995, TODS.

[14]  Paul Hudak,et al.  Call by name, assignment, and the lambda calculus , 1993, POPL '93.

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

[16]  Limsoon Wong,et al.  Querying Nested Collections , 1994 .

[17]  Limsoon Wong,et al.  Naturally Embedded Query Languages , 1992, ICDT.

[18]  Serge Abiteboul,et al.  Datalog Extensions for Database Queries and Updates , 1991, J. Comput. Syst. Sci..

[19]  Carmem S. Hara,et al.  Querying an Object-Oriented Database Using CPL , 1997 .

[20]  Richard Hull,et al.  Structures for manipulating proposed updates in object-oriented databases , 1996, SIGMOD '96.

[21]  Philip Wadler,et al.  Linear logic, monads and the lambda calculus , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[22]  Peter Buneman,et al.  Structural Recursion as a Query Language , 1992, DBPL.

[23]  Alexandra Poulovassilis,et al.  An Overview of PFL , 1991, DBPL.

[24]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[25]  Samuel N. Kamin,et al.  Implementation of functional languages with state , 1996 .

[26]  Philip W. Trinder,et al.  Comprehensions, a Query Notation for DBPLs , 1992, DBPL.

[27]  Philip Wadler,et al.  Improving list comprehension database queries , 1989, Fourth IEEE Region 10 International Conference TENCON.

[28]  François Bancilhon,et al.  A Query Language for the O2 Object-Oriented Database System , 1989, DBPL.

[29]  Carol Small,et al.  Extending Functional Database Languages to Update Completeness , 1995, BNCOD.

[30]  Uday S. Reddy,et al.  Imperative functional programming , 1996, CSUR.