Functional Programming Formalisms for OODBMS Methods

Two well-studied functional formalisms in the theory of programming languages are (1) applicative program schemas and (2) typed lambda calculi. We relate these programming formalisms to object-oriented databases (OODBs) and in particular to the description of methods. The language of method schemas (MS) is a programming formalism based on applicative program schemas with additional key object-oriented features such as classes, methods, inheritance, name overloading, and late binding. From [AKRW92], we present its syntax and semantics and survey the state-of-the-art of consistency checking or signature inference for this language, a problem which can be used in studyingbase schema evolution. We then relate MS with more conventional database query languages by showing that its expressive power over finite ordered databases is PTIME. Despite its simplicity and applicability, MS does not directly model the tuple, set, and list complex structures that are quite common in databases. Also, it does not treat functions as objects, i.e., methods are different from objects. It is possible to achieve these two capabilities using the typed lambda calculus with equality as a database query language, even without any object-oriented features. From [HKM93], we illustrate how this pure functional language subsumes most conventional database query languages including the relational calculus/algebra, Datalog (with or without negation), and the complex object calculus/algebra (with or without powerset). In conclusion, we argue that the appropriate programming formalism for OODBs must be a functional language that combines the object-oriented MS with the expressive $TLC^=$ and facilitates operations on sets of objects.

[1]  Emmanuel Waller,et al.  Schema Updates and Consistency , 1991, DOOD.

[2]  David Harel,et al.  Computable Queries for Relational Data Bases , 1980, J. Comput. Syst. Sci..

[3]  Christos H. Papadimitriou,et al.  Why not negation by fixpoint? , 1988, PODS '88.

[4]  David Maier,et al.  Readings in Object-Oriented Database Systems , 1989 .

[5]  John C. Mitchell,et al.  A lambda calculus of objects and method specialization , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[6]  Jeffrey D. Ullman,et al.  Principles of Database Systems, 2nd Edition , 1982 .

[7]  Peter Buneman,et al.  An implementation technique for database query languages , 1982, TODS.

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

[9]  Harry G. Mairson,et al.  Unification and ML-Type Reconstruction , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[10]  Ronald Fagin Generalized first-order spectra, and polynomial. time recognizable sets , 1974 .

[11]  J. D. Uiiman,et al.  Principles of Database Systems , 2004, PODS 2004.

[12]  Serge Abiteboul,et al.  Method schemas , 1990, PODS.

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

[14]  David Harel,et al.  Structure and complexity of relational queries , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[15]  Richard Statman,et al.  The typed λ-calculus is not elementary recursive , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[16]  Catriel Beeri,et al.  On the power of languages for manipulation of complex objects , 1987, VLDB 1987.

[17]  Daniel Leivant,et al.  Lambda Calculus Characterizations of Poly-Time , 1993, Fundam. Informaticae.

[18]  Neil Immerman,et al.  Relational Queries Computable in Polynomial Time , 1986, Inf. Control..

[19]  Masatoshi Yoshikawa,et al.  Behavior Analysis of Object-Oriented Databases: Method Structure, Execution Trees, and Reachability (Extended Abstract) , 1989, FODO.

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

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

[22]  Yuri Gurevich,et al.  Algebras of feasible functions , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[23]  Moshe Y. Vardi The complexity of relational query languages (Extended Abstract) , 1982, STOC '82.

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

[25]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[26]  Serge Abiteboul,et al.  Methods and rules , 1993, SIGMOD Conference.

[27]  Jonathan Rees,et al.  Object-oriented programming in scheme , 1988, LFP '88.

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

[29]  Bruno Courcelle,et al.  Recursive Applicative Program Schemes , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[30]  Harry G. Mairson A Simple Proof of a Theorem of Statman , 1992, Theor. Comput. Sci..

[31]  Paris C. Kanellakis,et al.  Elements of Relational Database Theory , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[32]  Zohar Manna,et al.  Decidable Properties of Monadic Functional Schemas , 1973, JACM.

[33]  Sheila A. Greibach,et al.  Theory of Program Structures: Schemes, Semantics, Verification , 1976, Lecture Notes in Computer Science.

[34]  John C. Mitchell Toward a typed foundation for method specialization and inheritance , 1989, POPL '90.

[35]  Serge Abiteboul,et al.  Object identity as a query language primitive , 1989, SIGMOD '89.

[36]  David Harel,et al.  Horn Clauses Queries and Generalizations , 1985, J. Log. Program..

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

[38]  A. Church The calculi of lambda-conversion , 1941 .

[39]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

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

[41]  Hendrik Pieter Barendregt,et al.  Functional Programming and Lambda Calculus , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[42]  Paris C. Kanellakis,et al.  Database Theory Column: Query Languages for Complex Object Databases. , 1990 .