DeBinelle: Semantic Patches for Coupled Database-Application Evolution

  title={DeBinelle: Semantic Patches for Coupled Database-Application Evolution},
  author={Stefanie Scherzinger and Wolfgang Mauerer and Haridimos Kondylakis},
  journal={2021 IEEE 37th International Conference on Data Engineering (ICDE)},
Databases are at the core of virtually any software product. Changes to database schemas cannot be made in isolation, as they are intricately coupled with application code. Such couplings enforce collateral evolution, which is a recognised, important research problem. In this demonstration, we show a new dimension to this problem, in software that supports alternative database backends: vendor-specific SQL dialects necessitate a simultaneous evolution of both, database schema and program code… 

Figures from this paper


An empirical analysis of the co-evolution of schema and code in database applications
This paper presents the first comprehensive empirical analysis of the co-evolution of database schemas and code in ten popular large open-source database applications, totaling over 160K revisions, and reveals new insights into how database applications evolve and useful guidelines for designing assistive tools to aid their evolution.
Co-transformations in Database Applications Evolution
A comprehensive transformation/generative approach is described according to which automated program transformation can be derived from schema transformation, in the particular context of database reengineering.
Automating the database schema evolution process
This paper presents the PRISM/PRISM++ system and the novel technology that made it possible, and focuses on the difficult and previously unsolved problem of supporting legacy queries and updates under schema and integrity constraints evolution.
Documenting and automating collateral evolutions in linux device drivers
This paper presents an automatic program transformation tool Coccinelle, for documenting and automating device driver collateral evolutions, and uses a language based on the patch syntax to express transformations, extending patches to semantic patches.
Synthesizing database programs for schema refactoring
This paper proposes a new technique for automatically synthesizing a new version of a database program given its original version and the source and target schemas, which is quite efficient and can synthesize new versions of database programs that are extracted from real-world web applications.
VESEL: VisuaL Exploration of Schema Evolution using Provenance Queries
VESEL is presented, the first system enabling the VisuaL Exploration of Schema Evolution using provenance queries and relies on a state of the art database evolution language, and can efficiently answer queries about when a specific table or column has been introduced, how with which SMO operation and why which is the sequence of changes that led to the creation of the specific table/column.
Schema Evolution in Wikipedia - Toward a Web Information System Benchmark
An analysis of the evolution history of the Wikipedia database and its schema suggests the need for developing better methods and tools to support graceful schema evolution and suggests that the Wikipedia case study can provide the kernel of a benchmark for testing and improving such systems.
Impact Analysis of Database Schema Changes on Hibernate Source Code and Test Cases
This research proposes an approach to analyze impacts on Hibernate source code and test cases caused by changing the database schema, which can notify users about changes that occur in the database Schema, and line numbers of the affected source codeand test cases.
Collateral evolution of applications and databases
Empirical evidence is used to identify challenges and solutions associated with the collateral evolution of application programs and databases, and sketches solutions for facilitating and ensuring the safety of application and database evolution, hence minimizing collateral effects.
Model management 2.0: manipulating richer mappings
A revised vision that differs from the original in two main respects: the operations must handle more expressive mappings, and the runtime that executes mappings should be added as an important model management component.