We present InVerDa, a tool for end-to-end support of coexisting schema versions within one database. While it is state of the art to run multiple versions of a continuously developed application concurrently, the same is hard for databases. In order to keep multiple co-existing schema versions alive—that all access the same data set—developers usually employ handwritten delta code (e.g. views and triggers in SQL). This delta code is hard to write and hard to maintain: if a database administrator decides to adapt the physical table schema, all handwritten delta code needs to be adapted as well, which is expensive and error-prone in practice. With InVerDa, developers use a simple bidirectional database evolution language in the first place that carries enough information to generate all the delta code automatically. Without additional eort, new schema versions become immediately accessible and data changes in any version are visible in all schema versions at the same time. We formally validate the correctness of this propagation. InVerDa also allows for easily changing the physical table designs without aecting the availability of co-existing schema versions. This greatly increases robustness (264 times less lines of code) and allows for significant performance optimization.
['Kai Herrmann', 'Hannes Voigt', 'Andreas Behrend', 'Jonas Rausch', 'Wolfgang Lehner']
Logical Data Independence in the 21st Century -- Co-Existing Schema Versions with InVerDa