Static management of integrity in object-oriented databases: Design and implementation

  • Véronique Benzaken
  • Xavier Schaefer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1377)

Abstract

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 a simplified database programming language, close to O2, in which we assume that updates are undertaken by means of methods. An important issue when dealing with constraints is that of efficiency. A naÏve 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 the use of predicate transformers combined with automatic theorem proving techniques, to prove the invariance of integrity constraints under complex methods. We then describe the current implementation of our prototype, and report some experiments that have been performed with it on non trivial examples. The counterpart of the problem of program verification is that of program correction. Static analysis techniques can also be applied to solve that problem. We present a systematic approach to undertake the automatic correction of potentially unsafe methods. However, the advantages of the latter technique are not as clear as those of program verification. We will therefore discuss some arguments for and against the use of method correction.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    S. Abiteboul and A. Bonner. Objects and views. In ACM International Conference on Management of Data (SIGMOD), pages 238–248, Denver, Colorado, USA, May 1991.Google Scholar
  2. 2.
    A. Albano, R. Bergamini, G. Ghelli, and R. Orsini. An object data model with roles. In International Conference on Very Large Databases, pages 39–52, 1993.Google Scholar
  3. 3.
    A. Albano, R. Bergamini, G. Ghelli, and R. Orsini. Fibonacci: a programming language for object databases. VLDB Journal, 4(3):403–444, July 95.Google Scholar
  4. 4.
    V. Benzaken and A. Doucet. Thémis: A Database Programming Language Handling Integrity Constraints. VLDB Journal, 4(3):493–518, 1995.CrossRefGoogle Scholar
  5. 5.
    V. Benzaken and X. Schaefer. Forward and backward analysis of object-oriented database programming languages: an application to static integrity management. Technical report, L.R.I, 1997. Available by ftp at ftp.lri.fr/LRI/articles/benzaken/report.ps.gz.Google Scholar
  6. 6.
    V. Benzaken and X. Schaefer. Static integrity constraint management in object-oriented database programming languages via predicate transformers. European Conference on Object-Oriented Programming (ECOOP'97), number 1241 in LNCS,Springer-Verlag, 1997.Google Scholar
  7. 7.
    John Boyland and Giuseppe Castagna. Type-safe compilation of covariant specialization: a practical case. In ECOOP'96, number 1008 in LNCS, Springer, 1996.Google Scholar
  8. 8.
    F. Bry, H. Decker, and R. Manthey. A Uniform Approach to Constraint Satisfaction and Constraint Satisfiability in Deductive Databases. EDBT'88, LNCS 303, Springer, 1988.Google Scholar
  9. 9.
    F. Bry and R. Manthey. Checking Consistency of Database Constraints: A Logical Basis. In Proceedings of the VLDB International Conference, pages 13–20, August 1986.Google Scholar
  10. 10.
    M. A. Casanova and P. A. Bernstein. A formal system for reasonning about programs accessing a relational database. ACM Trans. on Database Systems, 2(3):386–414, 1980.MathSciNetGoogle Scholar
  11. 11.
    Giuseppe Castagna. Object-Oriented Programming: A Unified Foundation. Progress in Theoretical Computer Science. BirkÄuser, Boston, 1996. ISBN 3-764-33905-5.Google Scholar
  12. 12.
    E. M. Clarke. Programming languages constructs for which it is impossible to obtain good hoare axiom systems. Journal of the ACM, 26(1):129–147, January 79.Google Scholar
  13. 13.
    P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In 4th POPL, 1977.Google Scholar
  14. 14.
    P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In 6th POPL, 1979.Google Scholar
  15. 15.
    O. Deux. The Story of O2. IEEE Transaction on Knowledge and Data Engineering, 2(1), March 1990.Google Scholar
  16. 16.
    E. W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.Google Scholar
  17. 17.
    E. W. Dijkstra and C. S. Scholten. Predicate Calculus and Program Semantics. Texts and Monographs in Computer Science. Springer-Verlag, 1990.Google Scholar
  18. 18.
    Melvin Fitting. First-order logic and automated theorem proving. Springer, 1990.Google Scholar
  19. 19.
    G. Gardarin and M. Melkanoff. Proving the Consistency of Database Transactions. In VLDB International Conference, pages 291–298, Rio, Brasil, October 1979.Google Scholar
  20. 20.
    L. Henschen, W. Mc Cune, and S. Naqvi. Compiling constraint checking programs from first order formulas. Advances in Database Theory, volume 2. Plenum, 1984.Google Scholar
  21. 21.
    C.A.R. Hoare. An axiomatic basis for computer programming. Comm. ACM, 12, 1969.Google Scholar
  22. 22.
    A. Hsu and T. Imielinski. Integrity Checking for Multiple Updates. In Proceedings of the ACM SIGMOD International Conference, pages 152–168, 1985.Google Scholar
  23. 23.
    N. D. Jones and F. Nielson. Abstract interpretation. Semantic Modelling, volume 4 of Handbook of Logic in Computer Science, chapter 5, pages 527–636. Oxford Science Publication, 1995.Google Scholar
  24. 24.
    R. Kowalski, F. Sadri, and P. Soper. Integrity Checking in Deductive Databases. In Proceedings of the VLDB International Conference, pages 61–70, 1987.Google Scholar
  25. 25.
    Michael Lawley. Transaction safety in deductive object-oriented databases. In Proceedings of the Fourth DOOD, number 1013 in LNCS, Springer 1995.Google Scholar
  26. 26.
    J. W. Lloyd and R. W. Topor. A basis for deductive database systems. Journal of Logic Programming, 2(2), 1985.Google Scholar
  27. 27.
    William W. McCune. OTTER 3.0 Reference Manual aud Guide. Argonne National Laboratory, available at http://www.mcs.anl.gov/home/mccune/ar/otter.Google Scholar
  28. 28.
    J.M. Nicolas. Logic for Improving Integrity Checking in Relational Databases. Technical report, ONERA-CERT, 1979.Google Scholar
  29. 29.
    Xiaolei Qian. An axiom system for database transactions. Information Processing Letters, 36:183–189, November 1990.CrossRefMathSciNetGoogle Scholar
  30. 30.
    Xiaolei Qian. The deductive synthesis of database transactions. ACM Transactions on Database Systems, 18(4):626–677, December 1993.CrossRefGoogle Scholar
  31. 31.
    X. Schaefer. Bases de données orientées objet, contraintes díntégrité et analyse statique. PhD thesis, Université de Paris 1 — Panthéon — Sorbonne, 1997.Google Scholar
  32. 32.
    T. Sheard and D. Stemple. Automatic Verification of Database Transaction Safety. ACM Trans. on Database Systems, 14(3):322–368, September 1989.CrossRefGoogle Scholar
  33. 33.
    C. Sousa, C. Delobel, and S. Abiteboul. Virtual schemas and bases. International Conference on Extending Database Technology, number 779 in LNCS, Springer-Verlag, 1994.Google Scholar
  34. 34.
    M. Stonebraker. Implementation of Integrity Constraints and Views by Query Modification. In ACM SIGMOD International Conference, San Jose, California, May 1975.Google Scholar
  35. 35.
    W. Weber, W. Stugky, and J. Karzt. Integrity Checking in database systems. Information Systems, 8(2):125–136, 1983.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 1998

Authors and Affiliations

  • Véronique Benzaken
    • 1
  • Xavier Schaefer
    • 1
  1. 1.C.R.I.Université de Paris I - Panthéon - SorbonneParisFrance

Personalised recommendations