In computer science, schema versioning, and its weaker companion, schema evolution, deal with the need to retain current data and software system functionality in the face of changing database structure. The problem is not limited to the modification of the schema. It, in fact, affects the data stored under the given schema and the queries (and thus the applications) posed on that schema.
In practice the design of a database is expected to be created as a "one size fits all" schema capable of accepting all data required by a system, and thus schema evolution is often not considered. This assumption, almost unrealistic in the context of traditional information systems, becomes unacceptable in the context of systems that retain large volumes of historical information or those such as Web Information Systems, that due to the distributed and cooperative nature of their development, are subject of an even stronger pressure toward change (from 39% to over 500% more intense than in traditional settings). Due to this historical heritage the process of schema evolution is nowadays a particularly taxing one. It is, in fact, widely acknowledged that the data management core of an applications is one of the most difficult and critical components to evolve. The key problem is the impact of the schema evolution on queries and applications. As shown in  (which provides an analysis of the MediaWiki evolution) each evolution step might affect up to 70% of the queries operating on the schema, that must be manually reworked consequently.
The problem has been recognized as a pressing one by the database community for more than 12 years. Supporting Schema Evolution is a difficult problem involving complex mapping among schema versions and the tool support has been so far very limited. The recent theoretical advances on mapping composition and mapping invertibility, which represent the core problems underlying the schema evolution remains almost inaccessible to the large public. The issue is particular felt by temporal databases.
- A rich bibliography on Schema Evolution is collected at: http://se-pubs.dbs.uni-leipzig.de/pubs/results/taxonomy%3A100
- UCLA university carried out an analysis of the MediaWiki Schema Evolution: Schema Evolution Benchmark
- PRISM, a tool to support graceful relational schema evolution: Prism: schema evolution tool
- PRIMA, a tool supporting transaction time databases under schema evolution PRIMA: supporting transaction-time DB under schema evolution
- Pario is a software development tool that includes fully automated schema evolution
- Roddick, John F (1995). "A survey of schema versioning issues for database systems". Information and Software Technology. 37 (7): 383–393. doi:10.1016/0950-5849(95)91494-K.
- "Schema Evolution Benchmark - Schema Evolution". yellowstone.cs.ucla.edu. Retrieved 2010-07-29.
- Curino CA, Moon HJ, Tanca L, Zaniolo C (2008). Schema Evolution in Wikipedia: toward a Web Information System Benchmark, (PDF). ICEIS.
- Rahm E, Bernstein PA. "An Online Bibliography on Schema Evolution" (PDF). Retrieved 2 May 2017.
- Encyclopedia of Database Systems. Springer, Boston, MA. 2009. pp. 2499–2502. doi:10.1007/978-0-387-39940-9_323.
- "Composition of mappings given by embedded dependencies". portal.acm.org. Retrieved 2010-07-29.
- Fagin R, Kolaitis PG, Popa L, Tan WC. "Quasi-inverses of Schema Mappings" (PDF).
- The TSQL2 Temporal Query Language. The Springer International Series in Engineering and Computer Science. Springer, Boston, MA. 1995. pp. 427–449. doi:10.1007/978-1-4615-2289-8_22. ISBN 9781461359661.
|This computer science article is a stub. You can help Wikipedia by expanding it.|