|
3. A NoSQL Schema Evolution Language
In schema-less NoSQL data stores, there is no explicit, global schema. Yet when we are building feature-rich, interactive web applications on top of NoSQL data stores, entities actually do display an implicit structure (or schema); this structure manifests in the entity kind and entity property names.
This especially holds when object mappers take over the mundane task of marshalling objects from the application space into persisted entities, and back. These object mappers commonly map class names to entity kinds, and class members to entity properties. (We discuss object mappers further in the context of related work in Section 7.)
Thus, there is a large class of applications that use NoSQL data stores, where the data is somewhat consistently structured, but has no fixed schema in the relational sense. Moreover, in an agile setting, these are applications that evolve rapidly, both in their features and their data.
Under these assumptions, we now define a compact set of declarative schema migration operations, that have been inspired by schema evolution in relational databases, and update operations for semi-structured data [31]. While we can only argue empirically, having read through discussions in various developer forums, we are confident that these operations cover a large share of the common schema migration tasks.
|
|