Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2491411.2491431acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

An empirical analysis of the co-evolution of schema and code in database applications

Published: 18 August 2013 Publication History

Abstract

Modern database applications are among the most widely used and complex software systems. They constantly evolve, responding to changes to data, database schemas, and code. It is challenging to manage these changes and ensure that everything co-evolves consistently. For example, when a database schema is modified, all the code that interacts with the database must be changed accordingly. Although database evolution and software evolution have been extensively studied in isolation, the co-evolution of schema and code has largely been unexplored.
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. Our major findings include: 1) Database schemas evolve frequently during the application lifecycle, exhibiting a variety of change types with similar distributions across the studied applications; 2) Overall, schema changes induce significant code-level modifications, while certain change types have more impact on code than others; and 3) Co-change analyses can be viable to automate or assist with database application evolution. We have also observed that: 1) 80% of the schema changes happened in 20-30% of the tables, while nearly 40% of the tables did not change; and 2) Referential integrity constraints and stored procedures are rarely used in our studied subjects. We believe that our study reveals new insights into how database applications evolve and useful guidelines for designing assistive tools to aid their evolution.

References

[1]
S. W. Ambler and P. J. Sadalage. Refactoring Databases: Evolutionary Database Design. Addison-Wesley, 2006.
[2]
R. S. Arnold. Software Change Impact Analysis. IEEE Computer Society Press, 1996.
[3]
G. Canfora, M. Ceccarelli, L. Cerulo, and M. Di Penta. Using multivariate time series and association rules to detect logical change coupling: An empirical study. In IEEE International Conference on Software Maintenance, pages 1–10, 2010.
[4]
A. Cleve. Program analysis and transformation for data-intensive system evolution. In IEEE International Conference on Software Maintenance, pages 1–6, 2010.
[5]
A. Cleve, T. Mens, and J.-L. Hainaut. Data-Intensive System Evolution. Computer, 43(8):110–112, 2010.
[6]
C. Curino, H. Moon, and A. Deutsch. Update rewriting and integrity constraint maintenance in a schema evolution support system: PRISM++. VLDB Endowment, 4(2):117–128, 2010.
[7]
C. Curino, H. Moon, and C. Zaniolo. Graceful database schema evolution: the PRISM workbench. VLDB Endowment, 1(1):761–772, 2008.
[8]
C. Curino, H. J. Moon, L. Tanca, and C. Zaniolo. Schema evolution in Wikipedia – toward a Web information system benchmark. In International Conference on Enterprise Information Systems, 2008.
[9]
J. Hick and J. Hainaut. Database application evolution: A transformational approach. Data & Knowledge Engineering, 59(3):534––558, 2006.
[10]
A. Karahasanovic. Supporting Application Consistency in Evolving Object-Oriented Systems by Impact Analysis and Visualisation. PhD Dissertation, Department of Informatics, University of Oslo, 2002.
[11]
D.-Y. Lin and I. Neamtiu. Collateral evolution of applications and databases. In Joint ERCIM Workshops on Principles of Software Evolution (IWPSE) and Software Evolution (Evol), pages 31–40, 2009.
[12]
A. Maule, W. Emmerich, and D. S. Rosenblum. Impact analysis of database schema changes. In International Conference on Software Engineering, pages 451–460, 2008.
[13]
Y.-G. Ra. Relational schema evolution for program independency. In International Conference on Intelligent Information Technology, pages 273–281, 2004.
[14]
D. Sjøberg. Quantifying schema evolution. Information and Software Technology, 35(1):35–44, 1993.
[15]
A. Spiers. http://adamspiers.org/computing/mysqldiff/.
[16]
Subversion. http://subversion.apache.org/.
[17]
S. Wu and I. Neamtiu. Schema evolution analysis for embedded databases. In Workshop on Hot Topics in Software Upgrades, pages 151–156, 2011.
[18]
A. Ying, G. Murphy, R. Ng, and M. Chu-Carroll. Predicting source code changes by mining change history. IEEE Transactions on Software Engineering, 30(9):574–586, 2004.
[19]
T. Zimmermann, A. Zeller, P. Weissgerber, and S. Diehl. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 31(6):429–445, 2005.

Cited By

View all
  • (2024)An Empirical Study on the Characteristics of Database Access Bugs in Java ApplicationsACM Transactions on Software Engineering and Methodology10.1145/367244933:7(1-25)Online publication date: 13-Jun-2024
  • (2024)Fachsysteme, Schemaevolution, DatenharmonisierungUmweltinformationssysteme - Digitalisierung im Zeichen des Klimawandels und der Energiewende10.1007/978-3-658-43735-0_18(263-278)Online publication date: 5-Jul-2024
  • (2024)On the importance of CI/CD practices for database applicationsJournal of Software: Evolution and Process10.1002/smr.2720Online publication date: 11-Aug-2024
  • Show More Cited By

Index Terms

  1. An empirical analysis of the co-evolution of schema and code in database applications

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ESEC/FSE 2013: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
      August 2013
      738 pages
      ISBN:9781450322379
      DOI:10.1145/2491411
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 18 August 2013

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Co-evolution
      2. database application
      3. empirical analysis

      Qualifiers

      • Research-article

      Conference

      ESEC/FSE'13
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 112 of 543 submissions, 21%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)29
      • Downloads (Last 6 weeks)3
      Reflects downloads up to 24 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)An Empirical Study on the Characteristics of Database Access Bugs in Java ApplicationsACM Transactions on Software Engineering and Methodology10.1145/367244933:7(1-25)Online publication date: 13-Jun-2024
      • (2024)Fachsysteme, Schemaevolution, DatenharmonisierungUmweltinformationssysteme - Digitalisierung im Zeichen des Klimawandels und der Energiewende10.1007/978-3-658-43735-0_18(263-278)Online publication date: 5-Jul-2024
      • (2024)On the importance of CI/CD practices for database applicationsJournal of Software: Evolution and Process10.1002/smr.2720Online publication date: 11-Aug-2024
      • (2023)Measuring the Benefits of CI/CD Practices for Database Application Development2023 IEEE/ACM International Conference on Software and System Processes (ICSSP)10.1109/ICSSP59042.2023.00015(46-57)Online publication date: May-2023
      • (2023)Best practices of testing database manipulation codeInformation Systems10.1016/j.is.2022.102105111:COnline publication date: 1-Jan-2023
      • (2023)Managing Schema Migration in NoSQL Databases: Advisor Heuristics vs. Self-adaptive Schema Migration StrategiesModel-Driven Engineering and Software Development10.1007/978-3-031-38821-7_11(230-253)Online publication date: 4-Aug-2023
      • (2023)Mining, Analyzing, and Evolving Data-Intensive Software EcosystemsSoftware Ecosystems10.1007/978-3-031-36060-2_11(281-314)Online publication date: 6-Oct-2023
      • (2022)Investigating the Impact of Outsourcing on IT FlexibilityInternational Journal of Healthcare Information Systems and Informatics10.4018/IJHISI.29995517:2(1-26)Online publication date: 1-Apr-2022
      • (2022)A Systematic Review of Attributes and Techniques for Open Source Software Evolution AnalysisResearch Anthology on Agile Software, Software Development, and Testing10.4018/978-1-6684-3702-5.ch006(84-106)Online publication date: 2022
      • (2022)Online schema evolution is (almost) free for snapshot databasesProceedings of the VLDB Endowment10.14778/3565816.356581816:2(140-153)Online publication date: 1-Oct-2022
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media