Verification Support for Object Database Design

In this thesis we have developed a verification theory and a tool for the automated analysis of assertions about object-oriented database schemas. The approach is inspired by the work of [SS89] in which a theorem prover is used to automate the verification of invariants for transactions on a relational database. The work presented in this thesis deals with an object-oriented database and it discusses applications other than the analysis of database transaction safety. An important difference with the work of [SS89] is that we have used a general purpose higher-order logic (HOL) theorem prover, namely the Isabelle theorem prover [Pau94, Isa], rather than implementing our own specialized prover. Much previous research, including the work of [SS89], concerns fully automatic techniques (i.e., without the possibility of further interaction). These techniques are inheritly limited in scope ([BGL96]). The presented approach, combines automatic and interactive proof, where Isabelle’s automatic proof facilities are exploited to minimize the user’s effort to discharge proof obligations. The results demonstrate that today’s prover technology can indeed help in practical verification issues that arise in the design of databases.

[1]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

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

[3]  Natarajan Shankar,et al.  PVS: Combining Specification, Proof Checking, and Model Checking , 1996, FMCAD.

[4]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[5]  Juha Puustjärvi,et al.  Transaction Models in Cooperative Work—an Overview , 1998 .

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

[7]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[8]  Thomas Tesch,et al.  Towards a Cooperative Transaction Model - The Cooperative Activity Model , 1995, VLDB.

[9]  Martin C. Rinard,et al.  Semantic Foundations of Commutativity Analysis , 1996, Euro-Par, Vol. I.

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

[11]  Krithi Ramamritham,et al.  Delegation: efficiently rewriting history , 1997, Proceedings 13th International Conference on Data Engineering.

[12]  Anne Doucet,et al.  Thémis: A database programming language handling integrity constraints , 1995, The VLDB Journal.

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

[14]  Maurice van Keulen,et al.  Formal operation definition in object-oriented databases , 1997 .

[15]  M. Tamer Özsu Transaction Models and Transaction Management in Object-Oriented Database Management Systems , 1993, NATO ASI OODBS.

[16]  Lawrence C. Paulson,et al.  ML for the working programmer (2. ed.) , 1996 .

[17]  H. V. Jagadish,et al.  Integrity Maintenance in Object-Oriented Databases , 1992, VLDB.

[18]  Luca Cardelli,et al.  Operations on records , 1989, Mathematical Structures in Computer Science.

[19]  Michael Benedikt,et al.  Verifiable properties of database transactions , 1996, PODS '96.

[20]  Véronique Benzaken,et al.  Static Integrity Constraint Management in Object-Oriented Database Programming Languages via Predicate Transformers , 1997, ECOOP.

[21]  Véronique Benzaken,et al.  Static Management of Integrity in Object-Oriented Databases: Design and Implementation , 1998, EDBT.

[22]  G. Winskel The formal semantics of programming languages , 1993 .

[23]  Umeshwar Dayal,et al.  Failure handling for transaction hierarchies , 1997, Proceedings 13th International Conference on Data Engineering.

[24]  Herman Balsters,et al.  Typed Sets as a Basis for Object-Oriented Database Schemas , 1993, ECOOP.

[25]  Ron Seljée,et al.  A New Method for Integrity Constraint Checking in Deductive Database , 1995, Data Knowl. Eng..

[26]  David Spelt,et al.  Compensation Methods to Support Generic Graph Editing: A Case Study in Automated Verification of Schema Requirements for an Advanced Transaction Model , 1999, ECOOP Workshops.

[27]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

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

[29]  William E. Weihl The impact of recovery on concurrency control , 1989, PODS '89.

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

[31]  Xiaolei Qian An effective method for integrity constraint simplification , 1988, Proceedings. Fourth International Conference on Data Engineering.

[32]  Martin C. Rinard,et al.  Commutativity analysis: a technique for automatically parallelizing pointer-based computations , 1996, Proceedings of International Conference on Parallel Processing.

[33]  Lawrence C. Paulson,et al.  Isabelle: The Next 700 Theorem Provers , 2000, ArXiv.

[34]  Wolfgang Klas,et al.  History merging as a mechanism for concurrency control in cooperative environments , 1996, Proceedings RIDE '96. Sixth International Workshop on Research Issues in Data Engineering.

[35]  S. J. Even,et al.  Design of the Transcoop Demonstrator System , 1996 .

[36]  Abraham Silberschatz,et al.  A Formal Approach to Recovery by Compensating Transactions , 1990, VLDB.

[37]  Marc H. Scholl,et al.  Deterministic semantics of set-oriented update sequences , 1993, Proceedings of IEEE 9th International Conference on Data Engineering.

[38]  Thomas Santen A Theory of Structured Model-Based Specifications in Isabelle/HOL , 1997, TPHOLs.

[39]  Bart Jacobs,et al.  Reasoning about Java classes: preliminary report , 1998, OOPSLA '98.

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

[41]  Herman Balsters,et al.  Automatic Verification of Transactions on an Object-Oriented Database , 1997, DBPL.

[42]  Mark Wallace,et al.  Using Weakest Preconditions to Simplify Integrity Constraint Checking , 1993, Australian Database Conference.

[43]  David W. Stemple,et al.  On the modes and meaning of feedback to transaction designers , 1987, SIGMOD '87.

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

[45]  William E. Weihl,et al.  Commutativity-based concurrency control for abstract data types , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[46]  Thomas Tesch,et al.  The Transcoop Transaction Model , 1998 .

[47]  Stefano Paraboschi,et al.  A Review of Repairing Techniques for Integrity Maintenance , 1993, Rules in Database Systems.

[48]  J. Gray Information Technology Research: Investing in Our Future , 1999 .

[49]  Sushil Jajodia,et al.  Applying formal methods to semantic-based decomposition of transactions , 1997, TODS.

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

[51]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

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

[53]  Ken Kennedy,et al.  Information Technology Research Investing in Our Future , 1999 .

[54]  Richard Hull,et al.  On Detecting Conflict Between Proposed Updates , 1995, DBPL.

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

[56]  Herman Balsters,et al.  Subtyping Can Have a Simple Semantics , 1991, Theor. Comput. Sci..

[57]  Christopher Strachey,et al.  A theory of programming language semantics , 1976 .

[58]  David Spelt,et al.  A Theorem Prover-Based Analysis Tool for Object-Oriented Databases , 1999, TACAS.

[59]  Matthias Nussbaum Database Transaction Models for Advanced Applications , 1992 .

[60]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[61]  Wolfgang Naraschewski,et al.  Object-Oriented Verification Based on Record Subtyping in Higher-Order Logic , 1998, TPHOLs.

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

[63]  Richard J. Boulton,et al.  Experience with Embedding Hardware Description Languages in HOL , 1992, TPCD.

[64]  Richard Hull,et al.  Towards a Framework for Efficient Management of Potentially Conflicting Database Updates , 1995, DS-6.

[65]  Jean-Marie Nicolas,et al.  Logic for Improving Integrity Checking in Relational Data Bases , 1989 .

[66]  David Spelt,et al.  A Proof Tool for TM , 1995 .

[67]  Bertrand Meyer,et al.  On Formalism in Specifications , 1985, IEEE Software.

[68]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[69]  Xiaolei,et al.  Integrity Maintenance in an Object-Oriented Database , 1992 .

[70]  Martin C. Rinard,et al.  Commutativity analysis: a new analysis framework for parallelizing compilers , 1996, PLDI '96.

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