A Data(base) Schema is the formal representation of the structure, i.e., the elements and their relationships, of a structured collection of data (typically, a database).
Schema evolution is the process of altering the structure of a database from an older to a newer version, typically done by inserting, removing, or altering the constituent elements of the schema of the database. The movement from an older to a subsequent version of the schema is a schema transition and the sequence of such transitions is the history of the schema.
Schema evolution can have a tremendous impact to the entire information system built around the evolving database, severely affecting both developers and end-users. Quite frequently, development waits till a "schema backbone" is stable and applications are build on top of it. This is due to the dependency magnet nature of databases: a change in the schema of a database may immediately drive surrounding applications to crash (in case of deletions or renamings) or be semantically defective or inaccurate (in the case of information addition, or restructuring).The study of schema evolution is extremely important, because it allows us (a) to detect problems inherent or related to the fundamentals of the (relational) data model and the respective DBMS technology, (b) to help DBA’s, developers, testers and managers to reduce the effort and cost of maintenance by careful tasks of code implementation and review, schema and application design and planning of their future actions, (c) to relate our teaching to problems that take place in practice, and (d) to develop new theories, tools and methods to support all these tasks.