Evolución del esquema - Enciclopedia

En la informática, la versiónamiento de esquemas y la evolución de esquemas se refiere a la necesidad de mantener los datos actuales y la funcionalidad del sistema de software frente a cambios en la estructura de la base de datos. El problema no se limita a la modificación del esquema. De hecho, afecta a los datos almacenados bajo el esquema dado y a las consultas (y por lo tanto a las aplicaciones) formuladas sobre ese esquema.

A veces, un diseño de base de datos se crea como una instancia "de ahora en adelante" y por lo tanto no se considera la evolución del esquema. (Esto es diferente pero relacionado con donde una base de datos se diseña como "una talla única que encaja en todas", lo que no cubre la volatilidad de los atributos). Esta suposición, casi irrealista en el contexto de los sistemas de información tradicionales, se vuelve inaceptable en el contexto de sistemas que conservan grandes volúmenes de información histórica o aquellos, como los sistemas de información web, que debido a su naturaleza distribuida y cooperativa de desarrollo, están sujetos a una presión hacia el cambio aún mayor (de un 39% a más del 500% más intensa que en los entornos tradicionales). Debido a este patrimonio histórico, el proceso de evolución del esquema a partir de 2008 se volvió particularmente agotador. De hecho, se reconoce ampliamente que el núcleo de gestión de datos de una aplicación es una de las componentes más difíciles y críticas de evolucionar. El problema clave es el impacto de la evolución del esquema en las consultas y aplicaciones. Como se muestra en el artículo "Evolución del Esquema" en Wikipedia - Hacia un Marco de Prueba de Sistema de Información Web (2008) (que proporciona un análisis de la evolución de MediaWiki), cada paso de evolución podría afectar hasta el 70% de las consultas que operan sobre el esquema, que deben ser revisadas manualmente en consecuencia.

En 2008, el problema se reconoció como una necesidad urgente por la comunidad de bases de datos durante más de 12 años. Apoyar la evolución del esquema es un problema difícil que implica mapeos complejos entre versiones del esquema y hasta ahora, el soporte de herramientas ha sido muy limitado. Los recientes avances teóricos en composición de mapeos y invertibilidad de mapeos, que representan los problemas subyacentes en la evolución del esquema, siguen siendo prácticamente inaccesibles para el gran público. Este problema se siente particularmente en las bases de datos temporales.


Trabajos Relacionados
Una rica bibliografía sobre la Evolución del Esquema se recopila en: http://se-pubs.dbs.uni-leipzig.de/pubs/results/taxonomy%3A100
La Universidad de UCLA realizó un análisis de la Evolución del Esquema de MediaWiki: Marco de Prueba de Evolución de Esquema
PRISM, una herramienta para apoyar la evolución relacional del esquema de manera suave: Prism: herramienta de evolución de esquema
PRIMA, una herramienta que apoya bases de datos de tiempo de transacción bajo evolución de esquema PRIMA: soporte para bases de datos de tiempo de transacción bajo evolución de esquema
Pario y deltasql son ejemplos de herramientas de desarrollo de software que incluyen la evolución del esquema completamente automatizada.


Referencias