Waterfall methodologies can poorly cope with changes, making maintenance considerably an expensive process. For this reason, incremental and iterative methodologies were introduced (Larman & Basili, 2003). They view system development as a step-by-step process, with the introduction of new functionalities to meet user needs. The main problem arising in both paradigms is the complexity in facing changes. Therefore, an increased automated support in this task would result in a reduction of efforts and costs, especially in incremental methodologies, because it would make them more systematic.
Schema evolution and schema versioning have been pioneer research areas facing problems due to the introduction of changes in database schemas.
Generally accepted definitions of schema evolution and schema versioning are provided in a paper by Roddick (Roddick, 1995), which can be considered as a sort of manifesto for this research topic. According to these definitions, the aim of schema evolution is to facilitate changes in the database schema without losing existing data. If these changes are seen as producing different versions, then the need to store the data of all the versions naturally arises. Therefore, the goal of schema versioning is to allow users to access the data of old versions (retrospective access) as well as those of new ones (prospective access).
Key Terms in this Chapter
Schema Modification: It indicates the property of a database system which allows changes in the database schema of populated databases.
Evolutionary Data Modeling: Methodologies to iteratively and incrementally model database systems so that schema and applications evolve in a parallel way.
Schema Versioning: Given different schema versions, schema versioning indicates the capability of a database system to access to the data of all the versions both retrospectively and prospectively.
Query Reformulation: Given two schemas S1 and S2 and a set of constraints. Let Q1 a query on S1 and Q2 a query on S2. Q1 is a reformulation equivalent to Q2 if Q2 produces the same answers of Q1 on the instances of the joint schema satisfying the constraints.
Schema Changes: They are operations which allow database scheme to evolve according to the changes of the external world.
Database Refactoring: It indicates little changes in the database schema which preserve both the meaning of the data and the behaviors of the applications. These changes improve the quality of the design.
Schema Evolution: It indicates the property of a database system which allows changes in the database schema without losing the existing data.