Advertisement

Information Systems Frontiers

, Volume 20, Issue 1, pp 45–61 | Cite as

Robust and simple database evolution

  • Kai Herrmann
  • Hannes Voigt
  • Jonas Rausch
  • Andreas Behrend
  • Wolfgang Lehner
Article

Abstract

Software developers adapt to the fast-moving nature of software systems with agile development techniques. However, database developers lack the tools and concepts to keep the pace. Whenever the current database schema is evolved, the already existing data needs to be evolved as well. This is usually realized with manually written SQL scripts, which is error-prone and explains significant costs in software projects. A promising solution are declarative database evolution languages, which couple both schema and data evolution into intuitive operations. Existing database evolution languages focus on usability but do not strive for completeness. However, this is an inevitable prerequisite to avoid complex and error-prone workarounds. We present CoDEL which is based on an existing language but is relationally complete. We precisely define its semantic using relational algebra, propose a syntax, and formally validate its relational completeness. Having a complete and comprehensive database evolution language facilitates valuable support throughout the whole evolution of a database. As an instance, we present VaCo, a tool supporting developers with variant co-evolution. Given a variant schema derived from a core schema, VaCo uses the richer semantics of CoDEL to semi-automatically co-evolve this variant with the core.

Keywords

Database evolution Evolution language Relational completeness Co-Evolution 

Notes

Acknowledgments

This work is funded by the German Research Foundation (Deutsche Forschungsgemeinschaft; DFG) within the RoSI research training group (GRK 1907).

References

  1. Ambler, S.W. (2006). Whence Data Management?. Dr. Dobb’s Journal, 390, 79.Google Scholar
  2. Ambler, S.W., & Sadalage, P.J. (2006). Refactoring Databases: Evolutionary Database Design. Addison-Wesley Signature, isbn 978-0321774514.Google Scholar
  3. Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., & et al (2001). Manifesto for Agile Software Development.Google Scholar
  4. Ceri, S., Negri, M., & Pelagatti, G. (1982). Horizontal Data Partitioning in Database Design. SIGMOD Conference, 128–136.Google Scholar
  5. Cicchetti, A., Ruscio, D.D., Eramo, R., & Pierantonio, A. (2008). Automating Co-evolution in Model-Driven Engineering. EDOC, 222–231.Google Scholar
  6. Codd, E.F. (1970). A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 15(3), 162–166.Google Scholar
  7. Curino, C.A., Moon, H.J., Deutsch, A., & Zaniolo, C. (2010). Update Rewriting and Integrity Constraint Maintenance in a Schema Evolution Support System: PRISM++. VLDB Endowment, 4(2), 117–128.CrossRefGoogle Scholar
  8. Curino, C.A., Moon, H.J., Deutsch, A., & Zaniolo, C. (2012). Automating the Database Schema Evolution Process. VLDB Journal, 22(1), 73–98.CrossRefGoogle Scholar
  9. Curino, C.A., Moon, H.J., & Zaniolo, C. (2008). Graceful Database Schema Evolution: the PRISM Workbench. VLDB Endowment, 1(1), 761–772.CrossRefGoogle Scholar
  10. Curino, C.A., Tanca, L., Moon, H.J., & Zaniolo, C. (2008). Schema Evolution in Wikipedia: Toward a Web Information System Benchmark. ICEIS, 323–332.Google Scholar
  11. Domínguez, E., Lloret, J., Rubio, Á.L., & Zapata, M.A. (2008). MeDEA: A Database Evolution Architecture with Traceability. Data & Knowledge Engineering, 65(3), 419–441.CrossRefGoogle Scholar
  12. Herrmann, K., Reimann, J., Voigt, H., Demuth, B., Fromm, S., Stelzmann, R. & Lehner, W. (2015). Database Evolution for Software Product Lines. DATA, 125–133.Google Scholar
  13. Herrmann, K., Voigt, H., Behrend, A., & Lehner, W. (2015). CoDEL – A Relationally Complete Language for Database Evolution. ADBIS, 63–76.Google Scholar
  14. Herrmann, K., Voigt, H., Seyschab, T., & Lehner, W. (2016). InVerDa – Co-existing Schema Versions Made Foolproof. ICDE (Demo).Google Scholar
  15. Moon, H.J., Curino, C.A., Ham, M., & Zaniolo, C. (2009). PRIMA – Archiving and Querying Historical Data with Evolving Schemas. SIGMOD Conference, 1019–1022.Google Scholar
  16. Papastefanatos, G., Vassiliadis, P., Simitsis, A., Aggistalis, K., Pechlivani, F., & Vassiliou, Y. (2008). Language Extensions for the Automation of Database Schema Evolution. ICEIS, 74–81.Google Scholar
  17. Qiu, D., Li, B., & Su, Z. (2013). An empirical analysis of the co-evolution of schema and code in database applications, ESEC/FSE, 125.Google Scholar
  18. Rahm, E., & Bernstein, P.A. (2006). An Online Bibliography on Schema Evolution. SIGMOD Record, 35(4), 30–31.CrossRefGoogle Scholar
  19. Roddick, J.F. (1992). SQL/SE – A Query Language Extension for Databases Supporting Schema Evolution. SIGMOD Record, 21(3), 10–16.CrossRefGoogle Scholar
  20. Roddick, J.F. (1995). A Survey of Schema Versioning Issues for Database Systems. Information and Software Technology, 37(7), 383–393.CrossRefGoogle Scholar
  21. Skoulis, I., Vassiliadis, P., & Zarras, A. (2014). Open-Source Databases: Within, Outside, or Beyond Lehman’s Laws of Software Evolution LNCS, 8484, 379–393.Google Scholar
  22. Terwilliger, J.F., Bernstein, P.A., & Unnithan, A. (2010). Worry-Free Database Upgrades. SIGMOD Conference, 1191.Google Scholar
  23. Terwilliger, J.F., Bernstein, P.A., & Unnithan, A. (2010). Automated co-evolution of conceptual models, physical databases, and mappings ER, 146–159.Google Scholar
  24. Terwilliger, J.F., Cleve, A., Curino, C.A. (2012). How Clean is Your Sandbox LNCS, 7307(2012), 1–23.Google Scholar
  25. Ullman, J.D. (1988). Principles of database and knowledge-base systems: Computer Science Press. ISBN 9780881751888.Google Scholar
  26. Zaniolo, C. (1984). Database Relations with Null Values. Journal of Computer and System Sciences, 28(1), 142–166.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2017

Authors and Affiliations

  • Kai Herrmann
    • 1
  • Hannes Voigt
    • 1
  • Jonas Rausch
    • 1
  • Andreas Behrend
    • 2
  • Wolfgang Lehner
    • 1
  1. 1.Dresden Database Systems GroupTechnische Universität DresdenDresdenGermany
  2. 2.Computer Science IIIUniversity of BonnBonnGermany

Personalised recommendations