Inferring NoSQL data schemas with model-driven engineering techniques= Inferencia de esquemas en bases de datos NoSQL por medio de ingeniería dirigida por modelos

  1. Feliciano Morales, Severino
Zuzendaria:
  1. Jesús Joaquín García Molina Zuzendaria
  2. Diego Sevilla Ruiz Zuzendaria

Defentsa unibertsitatea: Universidad de Murcia

Fecha de defensa: 2017(e)ko ekaina-(a)k 08

Epaimahaia:
  1. Oscar Pastor López Presidentea
  2. José Ramón Hoyos Barceló Idazkaria
  3. Javier Luis Cánovas Izquierdo Kidea
Saila:
  1. Informática y Sistemas

Mota: Tesia

Laburpena

Objetivos. La ausencia de un esquema explícito (schemaless) es una característica necesaria en los sistemas NoSQL debido a que proporciona la flexibilidad requerida por los cambios frecuentes en la estructura de los datos. Sin embargo, los desarrolladores necesitan comprender el esquema implícito cuando escriben código y las herramientas de bases de datos requieren conocer dicho esquema para soportar funcionalidades básicas. El objetivo principal de esta tesis es la definición de una estrategia de ingeniería inversa destinada a descubrir los esquemas implícitos en bases de datos NoSQL "basadas en agregación" y la construcción de herramientas que aprovechen los esquemas inferidos para ofrecer funcionalidades que ayuden a los desarrolladores. Estas herramientas permitirán que la flexibilidad obtenida no suponga perder los beneficios importantes que proporcionan los esquemas. Tanto el proceso de inferencia como las herramientas se han implementado con técnicas de la Ingeniería del Software Dirigida por Modelos (MDE). La existencia de versiones de las entidades almacenadas en bases de datos NoSQL ha sido el principal reto en el diseño del proceso de inferencia y de las herramientas. Metodología. Se ha seguido la metodología ``Design Science Research'' (DSRM) que define un proceso que consiste de seis actividades: (1) Identificación del problema y motivación, (2) Definir los objetivos, (3) Diseño y desarrollo de la solución, (4) Demostración, (5) Evaluación y (6) Conclusiones y difusión. Se trata de un proceso iterativo en el que el conocimiento producido a lo largo del proceso, por medio de la construcción y evaluación de nuevos artefactos, sirve como realimentación que permite mejora los artefactos creados con anterioridad hasta completar la solución final. Los detalles que implican estas actividades se introducen cuidadosamente a lo largo de esta Tesis. Resultados. Se ha definido un proceso de inferencia que representa los esquemas descubiertos como modelos que conforman al metamodelo NoSQL_Schema que es independiente de la plataforma. Las principales diferencias con respecto a otros enfoques propuestos son: (i) se extraen las versiones de cada entidad; (ii) se descubren todas las relaciones entre las versiones de entidad extraídas: agregación y referencias; y (iii) se considera la escalabilidad y el rendimiento del algoritmo de inferencia aplicando una operación MapReduce. El enfoque ha sido validado por medio de una base de datos MongoDB generada a partir de los datos de StackOverflow. Esta validación ha mostrado que el algoritmo escala bien con respecto al número de objetos. Se ha mostrado la utilidad de los esquemas versionados por medio del desarrollo de tres herramientas: visualización de esquemas, generación de código para Object-Document mappers (ODM), y generación de código para validar datos tanto al ser almacenados como al ser leídos. Contribuciones. El enfoque de inferencia presentado es el primero que maneja esquemas versionados para bases de datos NoSQL. Se han definido varios tipos de esquemas versionados: esquema de una versión, esquema de una entidad, esquema global de la base de datos y esquema de entidades de la base de datos. Se han propuesto representaciones visuales para cada tipo de esquema definido que se basan en los diagramas de clases UML. Se han construido tres utilidades para mostrar cómo los esquemas inferidos son útiles para la generación de código de aplicaciones NoSQL. El desarrollo de estas utilidades y del proceso de inferencia han mostrado los beneficios de las técnicas MDE en el área de la Ingeniería de Datos, en particular, el meta-modelado y las transformaciones de modelos.