Recommendations for Evolving Relational Databases

Relational databases play a central role in many information systems. Their schemas contain structural and behavioral entity descriptions. Databases must continuously be adapted to new requirements of a world in constant change while: (1) relational database management systems (RDBMS) do not allow inconsistencies in the schema; (2) stored procedure bodies are not meta-described in RDBMS such as PostgreSQL that consider their bodies as plain text. As a consequence, evaluating the impact of an evolution of the database schema is cumbersome, being essentially manual. We present a semi-automatic approach based on recommendations that can be compiled into a SQL patch fulfilling RDBMS constraints. To support recommendations, we designed a meta-model for relational databases easing computation of change impact. We performed an experiment to validate the approach by reproducing a real evolution on a database. The results of our experiment show that our approach can set the database in the same state as the one produced by the manual evolution in 75% less time.

[1]  Carlo Curino,et al.  Automating database schema evolution in information system upgrades , 2009, HotSWUp '09.

[2]  D. Sjøberg,et al.  Quantifying schema evolution , 1993, Inf. Softw. Technol..

[3]  A. Maule,et al.  Impact analysis of database schema changes , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[4]  Steffen Lehnert,et al.  A review of software change impact analysis , 2011 .

[5]  Anthony Cleve,et al.  Detecting and Preventing Program Inconsistencies under Database Schema Evolution , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[6]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[7]  Xu Chen,et al.  Extraction of Attribute Dependency Graph from Database Applications , 2011, 2011 18th Asia-Pacific Software Engineering Conference.

[8]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[9]  Tamás Gergely,et al.  Towards a Safe Method for Computing Dependencies in Database-Intensive Systems , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.

[10]  Carlo Curino,et al.  Graceful database schema evolution: the PRISM workbench , 2008, Proc. VLDB Endow..

[11]  George Papastefanatos,et al.  Hecataeus: A What-If Analysis Tool for Database Schema Evolution , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[12]  Nicos Malevris,et al.  DaSIAn: A Tool for Estimating the Impact of Database Schema Modifications on Web Applications , 2006, IEEE International Conference on Computer Systems and Applications, 2006..

[13]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[14]  Tibor Gyimóthy,et al.  Static Execute After/Before as a replacement of traditional software dependencies , 2008, 2008 IEEE International Conference on Software Maintenance.

[15]  Nicos Malevris,et al.  A two-folded impact analysis of schema changes on database applications , 2009, Int. J. Autom. Comput..

[16]  Amela Karahasanovic,et al.  Visualizing impacts of database schema changes - A controlled experiment , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[17]  George Papastefanatos,et al.  HECATAEUS: Regulating schema evolution , 2010, 2010 IEEE 26th International Conference on Data Engineering (ICDE 2010).

[18]  Xu Chen,et al.  Aiding Maintenance of Database Applications Through Extracting Attribute Dependency Graph , 2013, J. Database Manag..

[19]  Apostolos V. Zarras,et al.  Open-Source Databases: Within, Outside, or Beyond Lehman's Laws of Software Evolution? , 2014, CAiSE.

[20]  Nicolas Anquetil,et al.  Relational Database Schema Evolution: An Industrial Case Study , 2018, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME).