Affiliation:
1. University of Texas at Austin, USA
2. Microsoft Research, USA
Abstract
This paper addresses the problem of verifying equivalence between a pair of programs that operate over databases with different schemas. This problem is particularly important in the context of web applications, which typically undergo database refactoring either for performance or maintainability reasons. While web applications should have the same externally observable behavior before and after schema migration, there are no existing tools for proving equivalence of such programs. This paper takes a first step towards solving this problem by formalizing the equivalence and refinement checking problems for database-driven applications. We also propose a proof methodology based on the notion of bisimulation invariants over relational algebra with updates and describe a technique for synthesizing such bisimulation invariants. We have implemented the proposed technique in a tool called Mediator for verifying equivalence between database-driven applications written in our intermediate language and evaluate our tool on 21 benchmarks extracted from textbooks and real-world web applications. Our results show that the proposed methodology can successfully verify 20 of these benchmarks.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference70 articles.
1. Equivalences among Relational Expressions
2. Equivalence of Keyed Relational Schemas by Conjunctive Queries
3. Scott W Ambler and Pramod J Sadalage. 2006. Refactoring databases: Evolutionary database design. Pearson Education. Scott W Ambler and Pramod J Sadalage. 2006. Refactoring databases: Evolutionary database design. Pearson Education.
4. Finding bugs in dynamic web applications
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. VeriEQL: Bounded Equivalence Verification for Complex SQL Queries with Integrity Constraints;Proceedings of the ACM on Programming Languages;2024-04-29
2. Knowledge Equivalence in Digital Twins of Intelligent Systems;ACM Transactions on Modeling and Computer Simulation;2024-01-14
3. External Behavior of a Logic Program and Verification of Refactoring;Theory and Practice of Logic Programming;2023-07
4. Synthesizing axiomatizations using logic learning;Proceedings of the ACM on Programming Languages;2022-10-31
5. Optimizing Recursive Queries with Progam Synthesis;Proceedings of the 2022 International Conference on Management of Data;2022-06-10