skip to main content
article
Free Access

Automatic verification of database transaction safety

Published:01 September 1989Publication History
Skip Abstract Section

Abstract

Maintaining the integrity of databases is one of the promises of database management systems. This includes assuring that integrity constraints are invariants of database transactions. This is very difficult to accomplish efficiently in the presence of complex constraints and large amounts of data. One way to minimize the amount of processing required to maintain database integrity over transaction processing is to prove at compile-time that transactions cannot, if run atomically, disobey integrity constraints. We report on a system that performs such verification for a robust set of constraint and transaction classes. The system accepts database schemas written in a more or less traditional style and accepts programs in a high-level programming language. Automatic verification fast enough to be effective on current workstation hardware is performed.

References

  1. 1 BERNSTEIN, P. A., AND BLAUSTEIN, B.T. Fast methods for testing quantified relational calculus expressions. In Proceedings of ACM SIGMOD Conference (Orlando, Fla., June 1982). ACM, New York, 1982, pp. 39-50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 BOYER, R. S., AND MOORE, J.S. A Computational Logic. Academic Press, New York, 1979.Google ScholarGoogle Scholar
  3. 3 CASANOVA, M. A., AND BERNSTEIN, P.A. Logic of a relational data manipulation language. In Proceedings of the Sixth A CM Symposium on Principles of Programming Languages (San Antonio, Tex., Jan. 1979). ACM, New York, 1979, pp. 101-120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 CASANOVA, M. A., AND BERNSTEIN, P.A. Formal system for reasoning about programs accessing a relational database. ACM Trans. Program. Lang. Syst. 2, 3 (July 1980), 386-414. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 DE MILLO, R. A., LIPTON, R. J., AND PERLIS, A.J. Social processes and proofs of theorems and programs. Commun. ACM 22, 5 (May 1979), 271-280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 GARDARIN, G., AND MELKANOFF, M. Proving the consistency of database transactions. In Proceedings of the 5th International Conference on Very Large Data Bases (Rio de Janeiro, Oct. 1979), pp. 291-298.Google ScholarGoogle ScholarCross RefCross Ref
  7. 7 GUTTAG, J. Notes on type abstractions (version 2). IEEE Trans. Softw. Eng. 6, 1 (Jan. 1980), 13-23.Google ScholarGoogle Scholar
  8. 8 HENSCHEN, L. J., MCCUNE, W. W., AND NAQVI, S.A. Compiling constraint-checking programs from first-order formulas. In Advances in Database Theory, Vol. 2. H. Gallaire, J. Minker, and J. M. Nicolas, Eds. Plenum Press, New York, 1984, pp. 145-170.Google ScholarGoogle Scholar
  9. 9 HOABE, C.A. An axiomatic basis for computer programming. Commun. ACM 12, 10 (Oct. 1969), 576-580. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 HOARE, C.A. Recursive Data Structures. Int. J. Comput. inf. Sci. 4, 2 (June 1975), 105-132.Google ScholarGoogle ScholarCross RefCross Ref
  11. 11 Hsu, T., AND IMIELINSKI, W. Integrity checking for multiple updates. In Proceedings ACM SIGMOD Conference (Austin, Tex., May 1985). ACM, New York, 1985, pp. 152-168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 NICOLAS, J.M. Logic for improving integrity checking in relational databases. Acta Inf. 18, 3 {Dec. 1982), 227-253.Google ScholarGoogle Scholar
  13. 13 OPPEN, D. C. Reasoning about recursively defined data structures. In Proceedings of Fifth Symposium on Principles of Programming Languages (Tucson, Ariz., Jan. 1978), pp. 151-157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 PHILLIPS, N. C.K. Safe data type specifications. IEEE Trans. Softw. Eng. 10, 3 (May 1984), 285-289. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 SHEARD, W., AND STEMPLE, D. Coping with complexity in automated reasoning about database systems. In Proceedings of the 11th International Conference on Very Large Data Bases (Stockholm, Aug. li}85), pp. 426-435. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 SIMON, E., AND VALDURIEZ, P. Design and analysis of a relational integrity subsystem. MCC Tech. Rep. DB-015-87.Google ScholarGoogle Scholar
  17. 17 STEMPLE, D., AND SHEARD, W. Specification and verification of abstract database types. In Proceedings of the Third Symposium on Principles of Database Systems (Waterloo, Ont., Apr. 1984), pp. 248-257. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 STEMPLE, D., MAZUMDAR, S., AND SHEARD, T. On the modes and meaning of feedback to transaction designers. In Proceedings ACM SIGMOD Conference (San Francisco, May 1987). ACM, New York, 1987, pp. 374-386. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 STEMPLE, D., AND SHEARD, W. Database theory for supporting specification-based database system development. In Proceedings of the Eighth International Software Engineering Conference (London, Aug. 1985), pp. 43-49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 STEMPLE, D., StIEARD, T., AND BUNKER, R. Abstract data types in databases: specification, manipulation and access. In Proceedings of the IEEE Second International Conference on Data Engineering (Los Angeles, Feb. 1986). IEEE, New York, 1986, pp. 590-597. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21 WALKER, A., AND SALVETER, S.C. Automatic modification of transactions to preserve data base integrity without undoing updates. State University of New York at Stony Brook Tech. Rep. 81/026 (June 1981).Google ScholarGoogle Scholar

Index Terms

  1. Automatic verification of database transaction safety

                    Recommendations

                    Reviews

                    Antony Peter Stevens

                    This paper gives details of the design and use of a software system, written in LISP, which the authors claim improves the working life of a systems designer concerned with the safety of a transaction to be applied to a database. The system is used to verify, prior to run-time, whether the proposed transaction is safe, meaning that it does not violate integrity constraints. The verification requires the mechanical proof of a theorem which uses details of databases in general, the specific database schema under study, and the proposed transaction. A number of different types of constraints can be expressed for the specific schema, including functional dependencies, inclusion dependencies, and intersection dependencies. The inference techniques are based on Boyer-Moore computational logic. The authors use an example database of a job matching agency to illustrate many of the features of the system, including those referring to constraints not expressible in an entity-relationship diagram. Although I found the paper hard going, the fault is not entirely mine—the editors of the journal could have insisted on a more precise use of language. Sentences like “currently the system reasons about the natural numbers” could only mean something to people already intimate with the project. Much progress was apparently achieved by optimizing the proofs obtainable for six generic types of transaction (two of them being simple insert and delete). The addition of new types of transaction to the proof system, however, requires considerable skill and knowledge. This paper is lengthy and difficult to review—one can always judge a book on LISP, for example, by comparing it with other books on the same subject. When the description is of a research system it is difficult to judge which aspects merit most attention, since we cannot predict what will be important in the future. As someone who has been responsible for a database group, I look forward to the incorporation of many of these ideas as tools in commercially available database systems. This incorporation should, if nothing else, stimulate the database designer to acquire more respect for the logical ramifications of what she or he does. A different emphasis that could be given to this kind of project might result in a more permanent contribution. Consider the difference between “We have a system that will attempt to verify what you propose” and “We suggest that you only attempt the following because we can then guarantee that it will be safe.” In other words, it may be preferable to restrict data models to certain “standard” types that are safe instead of constructing engines that attempt to verify the safety of what are sometimes arbitrary decisions made by systems designers.

                    Access critical reviews of Computing literature here

                    Become a reviewer for Computing Reviews.

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    Full Access

                    • Published in

                      cover image ACM Transactions on Database Systems
                      ACM Transactions on Database Systems  Volume 14, Issue 3
                      Sept. 1989
                      152 pages
                      ISSN:0362-5915
                      EISSN:1557-4644
                      DOI:10.1145/68012
                      • Editor:
                      • Gio Wiederhold
                      Issue’s Table of Contents

                      Copyright © 1989 ACM

                      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      • Published: 1 September 1989
                      Published in tods Volume 14, Issue 3

                      Permissions

                      Request permissions about this article.

                      Request Permissions

                      Check for updates

                      Qualifiers

                      • article

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader