  Schema evolution is a crucial aspect in database management. The proposed
taxonomies of schema changes have neglected the set of operations that involves
relationships between entity types: aggregation and references, as well as the
possible existence of structural variations for schema types, as most of NoSQL
systems are schemaless. The distinction between entity types and relationship
types, which is typical of graph schemas, is also not taken into account in the
published works. Moreover, NoSQL schema evolution poses the challenge of having
different data models, and no standard specification exists for them. In this
paper, a generic approach for evolving NoSQL and relational schemas is
presented, which is based on the U-Schema unified data model that includes
aggregation and reference relationships, and structural variations. For this
data model, we introduce a taxonomy of schema changes for all the U-Schema
elements, which is implemented by creating the Orion database-independent
language. We will show how Orion can be used to automatically generate
evolution scripts for a set of NoSQL databases, and the feasibility of each
schema operation will be analyzed through the performance results obtained. The
taxonomy has been formally validated by means of Alloy, and two case studies
show the application of Orion.
