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.
Similar content being viewed by others
References
Ambler, S.W. (2006). Whence Data Management?. Dr. Dobb’s Journal, 390, 79.
Ambler, S.W., & Sadalage, P.J. (2006). Refactoring Databases: Evolutionary Database Design. Addison-Wesley Signature, isbn 978-0321774514.
Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., & et al (2001). Manifesto for Agile Software Development.
Ceri, S., Negri, M., & Pelagatti, G. (1982). Horizontal Data Partitioning in Database Design. SIGMOD Conference, 128–136.
Cicchetti, A., Ruscio, D.D., Eramo, R., & Pierantonio, A. (2008). Automating Co-evolution in Model-Driven Engineering. EDOC, 222–231.
Codd, E.F. (1970). A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 15(3), 162–166.
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.
Curino, C.A., Moon, H.J., Deutsch, A., & Zaniolo, C. (2012). Automating the Database Schema Evolution Process. VLDB Journal, 22(1), 73–98.
Curino, C.A., Moon, H.J., & Zaniolo, C. (2008). Graceful Database Schema Evolution: the PRISM Workbench. VLDB Endowment, 1(1), 761–772.
Curino, C.A., Tanca, L., Moon, H.J., & Zaniolo, C. (2008). Schema Evolution in Wikipedia: Toward a Web Information System Benchmark. ICEIS, 323–332.
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.
Herrmann, K., Reimann, J., Voigt, H., Demuth, B., Fromm, S., Stelzmann, R. & Lehner, W. (2015). Database Evolution for Software Product Lines. DATA, 125–133.
Herrmann, K., Voigt, H., Behrend, A., & Lehner, W. (2015). CoDEL – A Relationally Complete Language for Database Evolution. ADBIS, 63–76.
Herrmann, K., Voigt, H., Seyschab, T., & Lehner, W. (2016). InVerDa – Co-existing Schema Versions Made Foolproof. ICDE (Demo).
Moon, H.J., Curino, C.A., Ham, M., & Zaniolo, C. (2009). PRIMA – Archiving and Querying Historical Data with Evolving Schemas. SIGMOD Conference, 1019–1022.
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.
Qiu, D., Li, B., & Su, Z. (2013). An empirical analysis of the co-evolution of schema and code in database applications, ESEC/FSE, 125.
Rahm, E., & Bernstein, P.A. (2006). An Online Bibliography on Schema Evolution. SIGMOD Record, 35(4), 30–31.
Roddick, J.F. (1992). SQL/SE – A Query Language Extension for Databases Supporting Schema Evolution. SIGMOD Record, 21(3), 10–16.
Roddick, J.F. (1995). A Survey of Schema Versioning Issues for Database Systems. Information and Software Technology, 37(7), 383–393.
Skoulis, I., Vassiliadis, P., & Zarras, A. (2014). Open-Source Databases: Within, Outside, or Beyond Lehman’s Laws of Software Evolution LNCS, 8484, 379–393.
Terwilliger, J.F., Bernstein, P.A., & Unnithan, A. (2010). Worry-Free Database Upgrades. SIGMOD Conference, 1191.
Terwilliger, J.F., Bernstein, P.A., & Unnithan, A. (2010). Automated co-evolution of conceptual models, physical databases, and mappings ER, 146–159.
Terwilliger, J.F., Cleve, A., Curino, C.A. (2012). How Clean is Your Sandbox LNCS, 7307(2012), 1–23.
Ullman, J.D. (1988). Principles of database and knowledge-base systems: Computer Science Press. ISBN 9780881751888.
Zaniolo, C. (1984). Database Relations with Null Values. Journal of Computer and System Sciences, 28(1), 142–166.
Acknowledgments
This work is funded by the German Research Foundation (Deutsche Forschungsgemeinschaft; DFG) within the RoSI research training group (GRK 1907).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Herrmann, K., Voigt, H., Rausch, J. et al. Robust and simple database evolution. Inf Syst Front 20, 45–61 (2018). https://doi.org/10.1007/s10796-016-9730-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10796-016-9730-2