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.
- 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 ScholarDigital Library
- 2 BOYER, R. S., AND MOORE, J.S. A Computational Logic. Academic Press, New York, 1979.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 7 GUTTAG, J. Notes on type abstractions (version 2). IEEE Trans. Softw. Eng. 6, 1 (Jan. 1980), 13-23.Google Scholar
- 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 Scholar
- 9 HOABE, C.A. An axiomatic basis for computer programming. Commun. ACM 12, 10 (Oct. 1969), 576-580. Google ScholarDigital Library
- 10 HOARE, C.A. Recursive Data Structures. Int. J. Comput. inf. Sci. 4, 2 (June 1975), 105-132.Google ScholarCross Ref
- 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 ScholarDigital Library
- 12 NICOLAS, J.M. Logic for improving integrity checking in relational databases. Acta Inf. 18, 3 {Dec. 1982), 227-253.Google Scholar
- 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 ScholarDigital Library
- 14 PHILLIPS, N. C.K. Safe data type specifications. IEEE Trans. Softw. Eng. 10, 3 (May 1984), 285-289. Google ScholarDigital Library
- 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 ScholarDigital Library
- 16 SIMON, E., AND VALDURIEZ, P. Design and analysis of a relational integrity subsystem. MCC Tech. Rep. DB-015-87.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
Index Terms
- Automatic verification of database transaction safety
Recommendations
Testing database transaction concurrency
ASE'03: Proceedings of the 18th IEEE International Conference on Automated Software EngineeringDatabase application programs are often designed to be executed concurrently by many users. By grouping related database queries into transactions, DBMS systems can guarantee that each transaction satisfies the well-known ACID properties: Atomicity, ...
Comments