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.
References
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.
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.
A. Albano, R. Bergamini, G. Ghelli, and R. Orsini. Fibonacci: a programming language for object databases. VLDB Journal, 4(3):403–444, July 95.
V. Benzaken and A. Doucet. Thémis: A Database Programming Language Handling Integrity Constraints. VLDB Journal, 4(3):493–518, 1995.
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.
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.
John Boyland and Giuseppe Castagna. Type-safe compilation of covariant specialization: a practical case. In ECOOP'96, number 1008 in LNCS, Springer, 1996.
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.
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.
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.
Giuseppe Castagna. Object-Oriented Programming: A Unified Foundation. Progress in Theoretical Computer Science. BirkÄuser, Boston, 1996. ISBN 3-764-33905-5.
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.
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.
P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In 6th POPL, 1979.
O. Deux. The Story of O2. IEEE Transaction on Knowledge and Data Engineering, 2(1), March 1990.
E. W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.
E. W. Dijkstra and C. S. Scholten. Predicate Calculus and Program Semantics. Texts and Monographs in Computer Science. Springer-Verlag, 1990.
Melvin Fitting. First-order logic and automated theorem proving. Springer, 1990.
G. Gardarin and M. Melkanoff. Proving the Consistency of Database Transactions. In VLDB International Conference, pages 291–298, Rio, Brasil, October 1979.
L. Henschen, W. Mc Cune, and S. Naqvi. Compiling constraint checking programs from first order formulas. Advances in Database Theory, volume 2. Plenum, 1984.
C.A.R. Hoare. An axiomatic basis for computer programming. Comm. ACM, 12, 1969.
A. Hsu and T. Imielinski. Integrity Checking for Multiple Updates. In Proceedings of the ACM SIGMOD International Conference, pages 152–168, 1985.
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.
R. Kowalski, F. Sadri, and P. Soper. Integrity Checking in Deductive Databases. In Proceedings of the VLDB International Conference, pages 61–70, 1987.
Michael Lawley. Transaction safety in deductive object-oriented databases. In Proceedings of the Fourth DOOD, number 1013 in LNCS, Springer 1995.
J. W. Lloyd and R. W. Topor. A basis for deductive database systems. Journal of Logic Programming, 2(2), 1985.
William W. McCune. OTTER 3.0 Reference Manual aud Guide. Argonne National Laboratory, available at http://www.mcs.anl.gov/home/mccune/ar/otter.
J.M. Nicolas. Logic for Improving Integrity Checking in Relational Databases. Technical report, ONERA-CERT, 1979.
Xiaolei Qian. An axiom system for database transactions. Information Processing Letters, 36:183–189, November 1990.
Xiaolei Qian. The deductive synthesis of database transactions. ACM Transactions on Database Systems, 18(4):626–677, December 1993.
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.
T. Sheard and D. Stemple. Automatic Verification of Database Transaction Safety. ACM Trans. on Database Systems, 14(3):322–368, September 1989.
C. Sousa, C. Delobel, and S. Abiteboul. Virtual schemas and bases. International Conference on Extending Database Technology, number 779 in LNCS, Springer-Verlag, 1994.
M. Stonebraker. Implementation of Integrity Constraints and Views by Query Modification. In ACM SIGMOD International Conference, San Jose, California, May 1975.
W. Weber, W. Stugky, and J. Karzt. Integrity Checking in database systems. Information Systems, 8(2):125–136, 1983.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Benzaken, V., Schaefer, X. (1998). Static management of integrity in object-oriented databases: Design and implementation. In: Schek, HJ., Alonso, G., Saltor, F., Ramos, I. (eds) Advances in Database Technology — EDBT'98. EDBT 1998. Lecture Notes in Computer Science, vol 1377. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0100993
Download citation
DOI: https://doi.org/10.1007/BFb0100993
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64264-0
Online ISBN: 978-3-540-69709-1
eBook Packages: Springer Book Archive