Loading…

Verifying equivalence of database-driven applications

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 r...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages 2018-01, Vol.2 (POPL), p.1-29
Main Authors: Wang, Yuepeng, Dillig, Isil, Lahiri, Shuvendu K., Cook, William R.
Format: Article
Language:English
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by cdi_FETCH-LOGICAL-c258t-3e318849588155e1317af85ac9c5443373b9feac703c5378410c5d4cb811d56a3
cites cdi_FETCH-LOGICAL-c258t-3e318849588155e1317af85ac9c5443373b9feac703c5378410c5d4cb811d56a3
container_end_page 29
container_issue POPL
container_start_page 1
container_title Proceedings of ACM on programming languages
container_volume 2
creator Wang, Yuepeng
Dillig, Isil
Lahiri, Shuvendu K.
Cook, William R.
description 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.
doi_str_mv 10.1145/3158144
format article
fullrecord <record><control><sourceid>crossref</sourceid><recordid>TN_cdi_crossref_primary_10_1145_3158144</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>10_1145_3158144</sourcerecordid><originalsourceid>FETCH-LOGICAL-c258t-3e318849588155e1317af85ac9c5443373b9feac703c5378410c5d4cb811d56a3</originalsourceid><addsrcrecordid>eNpNj01Lw0AQQBdRsNTiX8jNU3QnM2M2Ryl-QcGLeg2Tzays1CTuxkL_vYg99PTe6cEz5hLsNQDxDQI7IDoxi4pqLoEqOD3yc7PK-dNaCw2Sw2Zh-F1TDPs4fBT6_RN3stXBazGGopdZOsla9inudChkmrbRyxzHIV-YsyDbrKsDl-bt4f51_VRuXh6f13eb0lfs5hIVwTlq2DlgVkCoJTgW33gmQqyxa4KKry16xtoRWM89-c4B9HwruDRX_12fxpyThnZK8UvSvgXb_g23h2H8BfNjRiA</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Verifying equivalence of database-driven applications</title><source>ACM Digital Library</source><creator>Wang, Yuepeng ; Dillig, Isil ; Lahiri, Shuvendu K. ; Cook, William R.</creator><creatorcontrib>Wang, Yuepeng ; Dillig, Isil ; Lahiri, Shuvendu K. ; Cook, William R.</creatorcontrib><description>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.</description><identifier>ISSN: 2475-1421</identifier><identifier>EISSN: 2475-1421</identifier><identifier>DOI: 10.1145/3158144</identifier><language>eng</language><ispartof>Proceedings of ACM on programming languages, 2018-01, Vol.2 (POPL), p.1-29</ispartof><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c258t-3e318849588155e1317af85ac9c5443373b9feac703c5378410c5d4cb811d56a3</citedby><cites>FETCH-LOGICAL-c258t-3e318849588155e1317af85ac9c5443373b9feac703c5378410c5d4cb811d56a3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Wang, Yuepeng</creatorcontrib><creatorcontrib>Dillig, Isil</creatorcontrib><creatorcontrib>Lahiri, Shuvendu K.</creatorcontrib><creatorcontrib>Cook, William R.</creatorcontrib><title>Verifying equivalence of database-driven applications</title><title>Proceedings of ACM on programming languages</title><description>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.</description><issn>2475-1421</issn><issn>2475-1421</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2018</creationdate><recordtype>article</recordtype><recordid>eNpNj01Lw0AQQBdRsNTiX8jNU3QnM2M2Ryl-QcGLeg2Tzays1CTuxkL_vYg99PTe6cEz5hLsNQDxDQI7IDoxi4pqLoEqOD3yc7PK-dNaCw2Sw2Zh-F1TDPs4fBT6_RN3stXBazGGopdZOsla9inudChkmrbRyxzHIV-YsyDbrKsDl-bt4f51_VRuXh6f13eb0lfs5hIVwTlq2DlgVkCoJTgW33gmQqyxa4KKry16xtoRWM89-c4B9HwruDRX_12fxpyThnZK8UvSvgXb_g23h2H8BfNjRiA</recordid><startdate>201801</startdate><enddate>201801</enddate><creator>Wang, Yuepeng</creator><creator>Dillig, Isil</creator><creator>Lahiri, Shuvendu K.</creator><creator>Cook, William R.</creator><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>201801</creationdate><title>Verifying equivalence of database-driven applications</title><author>Wang, Yuepeng ; Dillig, Isil ; Lahiri, Shuvendu K. ; Cook, William R.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c258t-3e318849588155e1317af85ac9c5443373b9feac703c5378410c5d4cb811d56a3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2018</creationdate><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Wang, Yuepeng</creatorcontrib><creatorcontrib>Dillig, Isil</creatorcontrib><creatorcontrib>Lahiri, Shuvendu K.</creatorcontrib><creatorcontrib>Cook, William R.</creatorcontrib><collection>CrossRef</collection><jtitle>Proceedings of ACM on programming languages</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Wang, Yuepeng</au><au>Dillig, Isil</au><au>Lahiri, Shuvendu K.</au><au>Cook, William R.</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Verifying equivalence of database-driven applications</atitle><jtitle>Proceedings of ACM on programming languages</jtitle><date>2018-01</date><risdate>2018</risdate><volume>2</volume><issue>POPL</issue><spage>1</spage><epage>29</epage><pages>1-29</pages><issn>2475-1421</issn><eissn>2475-1421</eissn><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.</abstract><doi>10.1145/3158144</doi><tpages>29</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 2475-1421
ispartof Proceedings of ACM on programming languages, 2018-01, Vol.2 (POPL), p.1-29
issn 2475-1421
2475-1421
language eng
recordid cdi_crossref_primary_10_1145_3158144
source ACM Digital Library
title Verifying equivalence of database-driven applications
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-07T13%3A51%3A49IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Verifying%20equivalence%20of%20database-driven%20applications&rft.jtitle=Proceedings%20of%20ACM%20on%20programming%20languages&rft.au=Wang,%20Yuepeng&rft.date=2018-01&rft.volume=2&rft.issue=POPL&rft.spage=1&rft.epage=29&rft.pages=1-29&rft.issn=2475-1421&rft.eissn=2475-1421&rft_id=info:doi/10.1145/3158144&rft_dat=%3Ccrossref%3E10_1145_3158144%3C/crossref%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c258t-3e318849588155e1317af85ac9c5443373b9feac703c5378410c5d4cb811d56a3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true