Descripción del proyecto
LA EVOLUCION DE ESQUEMAS DE BASES DE DATOS ES UN PROBLEMA CRUCIAL EN EL DESARROLLO DE APLICACIONES DE USO INTENSIVO DE DATOS. A TRAVES DEL CICLO DE VIDA DE LAS APLICACIONES DE SOFTWARE, LOS ESQUEMAS TIENEN QUE CAMBIAR CON NUEVOS REQUISITOS O PARA MEJORAR ASPECTOS COMO LA CALIDAD DE LOS DATOS O EL RENDIMIENTO. CADA VEZ QUE SE APLICA UN CAMBIO AL ESQUEMA, LOS DATOS ALMACENADOS Y EL CODIGO DE APLICACIONES DEBEN CO-EVOLUCIONAR PARA ADAPTARSE AL NUEVO ESQUEMA. DESDE LOS PRIMERO SISTEMAS BASES DE DATOS UN GRAN ESFUERZO SE HA DEDICADO PARA ABORDAR ESTE PROBLEMA, Y SE HAN CREADO ALGUNAS HERRAMIENTAS PARA MANEJAR LA EVOLUCION. EN LA DECADA PASADA, EL DESARROLLO AGIL SE HA CONSOLIDADO COMO EL MODO MAS ADECUADO DE PRODUCIR SOFTWARE. LAS PRACTICAS DE DESARROLLO AGIL NO SOLO DEBEN SER APLICADAS SOBRE EL CODIGO SINO TAMBIEN SOBRE LAS BASES DE DATOS. POR TANTO, UN DESARROLLO AGIL DE BASES DE DATOS (ADD) ES ESENCIAL PARA MANEJAR LOS CAMBIOS DE ESQUEMA, TALES COMO LA INTEGRACION CONTINUA, PRUEBAS AUTOMATIZADAS Y EL USO DE ANALIZADORES DE CODIGO ESTATICO PARA COMPROBAR ERRORES DE CODIGO. DE HECHO, DESDE HACE UNOS AÑOS, HAY DISPONIBLES HERRAMIENTAS MUY POPULARES QUE SOPORTAN ADD.AUNQUE LOS SISTEMAS RELACIONALES SIGUEN SIENDO PREDOMINANTES, LA ADOPCION DE SISTEMAS NOSQL ESTA CRECIENDO, COMO EVIDENCIAN LOS RANKINGS DE POPULARIDAD. HAY CUATRO PRINCIPALES TIPOS DE SISTEMAS NOSQL (DOCUMENTOS, COLUMNARES, GRAFICO Y CLAVE-VALOR), Y CADA UNO DE ELLOS ES CONVENIENTE PARA SUPERAR LAS LIMITACIONES DE LOS SISTEMAS RELACIONALES EN ALGUN TIPO DE APLICACION. SIN EMBARGO, EN LA ACTUALIDAD, NO EXISTEN HERRAMIENTAS QUE SOPORTEN ADD PARA SISTEMAS NOSQL. ADEMAS, LAS HERRAMIENTAS EXISTENTES PARA RELACIONALES CARECEN DE MECANISMOS QUE AYUDEN A LOS DESARROLLADORES EN LA ACTUALIZACION DEL CODIGO CUANDO CAMBIA EL ESQUEMA, CON EXCEPCION DE ALGUNOS PROTOTIPOS DE INVESTIGACION QUE SOPORTAN ALGUN TIPO DE REESCRITURA DE CONSULTAS SQL. CABE DESTACAR QUE ESTE TEMA NO HA SIDO ABORDADO EN LOS TRABAJOS PUBLICADOS SOBRE LA EVOLUCION DE DATOS NOSQL. LA PROPUESTA QUE PRESENTAMOS TIENE COMO PRINCIPAL OBJETIVO SUPERAR ESTAS LIMITACIONES. EL OBJETIVO DEL PROYECTO ES LA CONSTRUCCION DE UNA HERRAMIENTA CAPAZ DE SOPORTAR ADD PARA BASES DE DATOS NOSQL DE CUALQUIER CATEGORIA. LA HERRAMIENTA INCLUIRA LA SIGUIENTE FUNCIONALIDAD: (I) PROPORCIONAR CAPACIDADES COMO LAS QUE OFRECEN ACTUALMENTE HERRAMIENTAS ADD POPULARES COMO LIQUIBASE O FLYWAY PARA SISTEMAS RELACIONALES, (II) ASISTIR A LOS DESARROLLADORES EN LA ACTUALIZACION DEL CODIGO POR MEDIO DE INFORMACION TALES COMO LA GENERACION DE TAREAS PARA SISTEMAS ALM Y SUGERENCIAS DE POSIBLES CAMBIOS, (III) APLICAR AUTOMATICAMENTE REFACTORINGS DE BASE DE DATOS, Y IV) MEDIR EL COSTO DE UN CONJUNTO DE CAMBIOS DE ESQUEMA.EL PROYECTO SE BASA EN LOS RESULTADOS OBTENIDOS EN UNO ANTERIOR DE TRES AÑOS (2018-2020) QUE FUE FINANCIADO EN ESTA CONVOCATORIA. UN RESULTADO SIGNIFICATIVO DE AQUEL PROYECTO FUE UNA REPRESENTACION GENERICA DEL ESQUEMA NOSQL QUE AQUI UTILIZAREMOS PARA CONSEGUIR UNA HERRAMIENTA INDEPENDIENTE DE LA PLATAFORMA CAPAZ DE SOPORTAR SISTEMAS NOSQL, NEWSQL Y RELACIONALES.CON RESPECTO A LAS CONTRIBUCIONES DE LA INVESTIGACION, NOS GUSTARIA DESTACAR (I) ABORDAR LA EXTRACCION DE ESQUEMAS EN TIEMPO REAL, (II) CREAR UNA FAMILIA DE DSL PARA EXPRESAR OPERACIONES SOBRE ESQUEMAS Y DATOS, Y ESPECIFICAR SINTESIS DE DATOS, Y (III) DISEÑAR MECANISMOS QUE SOPORTEN ADD TANTO EN TIEMPO DESARROLLO COMO DE PRODUCCION. VOLUCION DEL ESQUEMA\INGENIERIA DEL SOFTWARE BASADA EN MODELO\AUTOMATIZACION DE SOFTWARE\MIGRACION DE QUERIES\MIGRACION DE DATOS\DESARROLLO DE BASES DE DATOS AGIL\BASES DE DATOS NOSQL