Static Integrity Constraint Management in Object-Oriented Database Programming Languages via Predicate Transformers

In this paper, we propose an efficient technique to statically manage integrity constraints in object-oriented database programming languages. We place ourselves in the context of an extended version of the O2 database programming language, and we assume that updates are undertaken by means of methods. An important issue when dealing with constraints is that of efficiency. A naive management of such constraints can cause a severe floundering of the overall system. Our basic assumption is that the run-time checking of constraints is too costly to be undertaken systematically. Therefore, methods that are always safe with respect to integrity constraints should be proven so at compile time. The run-time checks should only concern the remaining methods. To that purpose, we propose a new approach, based on abstract interpretation, to prove the invariance of integrity constraints under complex methods. We then describe the current implementation of our prototype, reporting many experiments that have been performed with it on non trivial examples.

[1]  John W. Lloyd,et al.  A Basis for Deductive Database Systems , 1985, J. Log. Program..

[2]  Xiaolei Qian,et al.  The deductive synthesis of database transactions , 1993, TODS.

[3]  Renzo Orsini,et al.  An Object Data Model with Roles , 1993, VLDB.

[4]  Robert A. Kowalski,et al.  Integrity Checking in Deductive Databases , 1987, VLDB.

[5]  Lawrence J. Henschen,et al.  Compiling Constraint-Checking Programs from First-Order Formulas , 1982, Advances in Data Base Theory.

[6]  Marco A. Casanova,et al.  A Formal System for Reasoning about Programs Accessing a Relational Database , 1980, ACM Trans. Program. Lang. Syst..

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

[8]  John W. Lloyd,et al.  A Basis for Deductive Database Systems II , 1986, J. Log. Program..

[9]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[10]  Serge Abiteboul,et al.  Virtual Schemas and Bases , 1994, EDBT.

[11]  Edmund M. Clarke,et al.  Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems , 1979, JACM.

[12]  Tomasz Imielinski,et al.  Integrity checking for multiple updates , 1985, SIGMOD '85.

[13]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[14]  Letizia Tanca,et al.  Active Rule Management in Chimera , 1996, Active Database Systems: Triggers and Rules For Advanced Database Processing.

[15]  Anne Doucet,et al.  Thémis: a database programming language with integrity constraints , 1993, DBPL.

[16]  Serge Abiteboul,et al.  Objects and views , 1991, SIGMOD '91.

[17]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[18]  John Tang Boyland,et al.  Type-Safe Compilation of Covariant Specialization: A Practical Case , 1996, ECOOP.

[19]  François Bry,et al.  Checking Consistency of Database Constraints: a Logical Basis , 1986, VLDB.

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

[21]  Wolffried Stucky,et al.  Integrity checking in data base systems , 1983, Inf. Syst..

[22]  Véronique Benzaken,et al.  Ensuring Efficiently the Integrity of Persistent Object Systems via Abstract Interpretation , 1996, POS.

[23]  Giuseppe Castagna,et al.  Object-Oriented Programming A Unified Foundation , 1997, Progress in Theoretical Computer Science.

[24]  Georges Gardarin,et al.  Proving Consistency Of Database Transactions , 1979, Fifth International Conference on Very Large Data Bases, 1979..

[25]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[26]  Patrick Cousot,et al.  Abstract interpretation , 1996, CSUR.

[27]  Eric Simon,et al.  Implementing High Level Active Rules on Top of a Relational DBMS , 1992, VLDB.

[28]  David W. Stemple,et al.  Automatic verification of database transaction safety , 1989, ACM Trans. Database Syst..

[29]  Jennifer Widom,et al.  Deriving Production Rules for Constraint Maintainance , 1990, VLDB.

[30]  Michael Lawley Transaction Safety in Deductive Object-Oriented Databases , 1995, DOOD.

[31]  Xiaolei QIAN An Axiom System for Database Transactions , 1990, Inf. Process. Lett..

[32]  Hendrik Decker,et al.  A Uniform Approach to Constraint Satisfaction and Constraint Satisfiability in Deductive Databases , 1988, EDBT.

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