En informática , el control de versiones de esquemas y la evolución de esquemas se ocupan de la necesidad de conservar la funcionalidad actual del sistema de software y datos frente a la estructura cambiante de la base de datos. [1] El problema no se limita a la modificación del esquema. De hecho, afecta los datos almacenados bajo el esquema dado y las consultas (y por lo tanto las aplicaciones) planteadas en ese esquema.
A veces, un diseño de base de datos se crea como una instancia "a partir de ahora" y, por lo tanto, no se considera la evolución del esquema. (Esto es diferente pero relacionado con el diseño de una base de datos como "talla única" que no cubre la volatilidad de los atributos ). Este supuesto, casi irreal en el contexto de los sistemas de información tradicionales, se vuelve inaceptable en el contexto de sistemas que retienen grandes volúmenes de información histórica o aquellos como los Sistemas de Información Web , que por el carácter distribuido y cooperativo de su desarrollo, son objeto de una presión aún más fuerte hacia el cambio (del 39% a más del 500% más intensa que en los entornos tradicionales). [2]Debido a esta herencia histórica, el proceso de evolución de los esquemas es hoy en día particularmente agotador. De hecho, se reconoce ampliamente que el núcleo de gestión de datos de una aplicación es uno de los componentes más difíciles y críticos de evolucionar. El problema clave es el impacto de la evolución del esquema en las consultas y las aplicaciones. Como se muestra en [3] (que proporciona un análisis de la evolución de MediaWiki) cada paso de la evolución puede afectar hasta el 70% de las consultas que operan en el esquema, que deben ser reelaboradas manualmente en consecuencia.
La comunidad de bases de datos ha reconocido que el problema es urgente durante más de 12 años. [4] [5] El soporte de la evolución de esquemas es un problema difícil que implica un mapeo complejo entre versiones de esquemas y el soporte de la herramienta ha sido muy limitado hasta ahora. Los recientes avances teóricos sobre la composición cartográfica [6] y la invertibilidad cartográfica [7], que representan los problemas centrales que subyacen a la evolución del esquema, siguen siendo casi inaccesibles para el gran público. El problema se siente particularmente en las bases de datos temporales. [8]
Obras relacionadas
- Se recopila una rica bibliografía sobre Schema Evolution en: http://se-pubs.dbs.uni-leipzig.de/pubs/results/taxonomy%3A100
- La universidad de UCLA llevó a cabo un análisis del MediaWiki Schema Evolution: Schema Evolution Benchmark
- PRISM, una herramienta para apoyar la evolución elegante del esquema relacional: Prism: herramienta de evolución del esquema
- PRIMA, una herramienta que soporta bases de datos de tiempo de transacción bajo la evolución del esquema PRIMA: soporta DB de tiempo de transacción bajo la evolución del esquema
- Pario y deltasql [9] son ejemplos de herramientas de desarrollo de software que incluyen la evolución de esquemas totalmente automatizada.
Referencias
- ^ Roddick, John F (1995). "Una encuesta sobre problemas de versiones de esquemas para sistemas de bases de datos". Tecnología de la información y el software . 37 (7): 383–393. CiteSeerX 10.1.1.54.8474 . doi : 10.1016 / 0950-5849 (95) 91494-K .
- ^ "Evaluación comparativa de la evolución del esquema - Evolución del esquema" . yellowstone.cs.ucla.edu . Consultado el 29 de julio de 2010 .
- ^ Curino CA, Moon HJ, Tanca L, Zaniolo C (2008). Evolución del esquema en Wikipedia: hacia un punto de referencia del sistema de información web, (PDF) . ICEIS .
- ^ Rahm E, Bernstein PA. "Una bibliografía en línea sobre la evolución del esquema" (PDF) . Consultado el 2 de mayo de 2017 .
- ^ Topor, Rodney; Salem, Kenneth; Gupta, Amarnath; Goda, Kazuo; Gehrke, Johannes; Palmer, Nathaniel; Sharaf, Mohamed; Labrinidis, Alexandros; Roddick, John F .; Fuxman, Ariel; Miller, Renée J .; Tan, Wang-Chiew; Kementsietsidis, Anastasios; Bonnet, Philippe; Shasha, Dennis; Roddick, John F .; Gupta, Amarnath; Peikert, Ronald; Ludäscher, Bertram; Bowers, Shawn; McPhillips, Timothy; Naumann, Harald; Voruganti, Kaladhar; Domingo-Ferrer, Josep; Carterette, Ben; Ipeirotis, Panagiotis G .; Arenas, Marcelo; Manolopoulos, Yannis; Theodoridis, Yannis; et al. (2009). "Control de versiones de esquemas". Enciclopedia de sistemas de bases de datos . Springer, Boston, MA. págs. 2499–2502. doi : 10.1007 / 978-0-387-39940-9_323 . ISBN 978-0-387-35544-3.
- ^ Nash, Alan; Bernstein, Philip A .; Melnik, Sergey (2007). "Composición de mapeos dados por dependencias incrustadas". Transacciones ACM en sistemas de bases de datos . 32 : 4 – es. CiteSeerX 10.1.1.534.3957 . doi : 10.1145 / 1206049.1206053 .
- ^ Fagin R, Kolaitis PG, Popa L, Tan WC. "Cuasi-inversos de mapeos de esquemas" (PDF) .
- ^ Roddick, John F .; Snodgrass, Richard T. (1995). "Control de versiones de esquemas". El lenguaje de consulta temporal TSQL2 . Springer International Series en Ingeniería y Ciencias de la Computación. Springer, Boston, MA. págs. 427–449. doi : 10.1007 / 978-1-4615-2289-8_22 . ISBN 9781461359661.
- ^ "deltasql, evolución de la base de datos bajo control" . Equipo de desarrollo de Deltasql. 2013-04-20 . Consultado el 8 de febrero de 2019 .