[en] Goals. This thesis deals with (i) the definition of a unified data model with the aim of integrating the relational model with the data models of the four most common NoSQL paradigms: columnar, document, key-value and graphs; (ii) The definition of bidirectional mappings between the unified data model and each of the data models of each database system; (iii) The implementation of a common strategy for extracting schemas from different types of databases by implementing the defined canonical mappings; (iv) The development of a Model-Driven Engineering process for code analysis of applications to obtain the database schema and perform a database refactoring; (v) The design and implementation of a generic schema query language, which allows to query the schemas represented in the unified data model; (vi) the creation of graphical notation to visualize the schemas; and (vii) the conducting a study to explore the possibility of using the unified data model to define a database query language. Methodology. To accomplish the objectives of the thesis, we have followed the Design Science Research Methodology (DSRM). These methods propose iterative research processes organized in several stages or activities to achieve an objective. The activities that normally constitute these processes are: (i) Problem identification and motivation, (ii) Definition of the objectives of the solution, (iii) Design and development, (iv) Demonstration, (v) Evaluation, and (vi) Conclusions and communication. In a DSRM process the knowledge produced in each iteration is used as feedback to better design and implement the final artifact. Results. This thesis addresses the main problems that arise in the development of generic database tools that integrate the most relevant data models, namely, relational and NoSQL models. Firstly, the definition of a unified metamodel (U-Schema) that integrates relational and NoSQL data models. Secondly, the construction of logical schema extractors for each considered data model. Because the most schema extraction approaches have applied data analysis, we have investigated the code static analysis as an alternative. Thirdly, around the unified metamodel and the set of extractors, we have built a generic schema management tool that includes a schema query language and a schema graphical viewer. Tackling these issues, we faced to the challenges posed by a proposal of NoSQL logical schema that includes structural variations and the most common relationships between database entities. Contributions. This thesis contributes with (i) The first logical unified metamodel that integrates the most widely used database paradigms: Relational and NoSQL. This also entailed the definition of two logical data models for NoSQL systems: one for aggregate based systems (columnar, document, and key-value) and one for graph systems; (ii) The formal specification of the bidirectional mappings between the unified metamodel and the individual data models; (iii) The definition of an architecture with reusable components to create schema extractor from any NoSQL system; (iv) A Model-Driven Engineering approach for logical schema extraction from code analysis and database refactoring; (v) A generic query language designed for U-Schema: SkiQL that allows developers to express queries on logical schemas represented as U-Schema models; (vi) The creation of a graphical notation to visualize the schemas that includes structural variations; (vii) A study on the usefulness of U-Schema to create a generic language to query NoSQL stores of any kind of system; and a comparison of the different generic metamodels proposed to represent database schemas or data formats.

[es] Objetivos. Esta tesis aborda: (i) la definición de un modelo de datos unificado con el objetivo de integrar el modelo relacional con los modelos de datos de los cuatro paradigmas más comunes de NoSQL: columnar, documento, clave-valor y grafos; (ii) La definición de mappings bidireccionales entre el modelo de datos unificado y cada uno de los modelos de datos de cada sistema de base de datos; (iii) La implementación de una estrategia común para la extracción de esquemas de diferentes tipos de bases de datos implementando los mappings definidos; (iv) El desarrollo de un proceso Model-Driven Engineering de análisis de código de aplicaciones para obtener el esquema de la base de datos y realizar un refactoring de la base de datos; (v) El diseño e implementación de un lenguaje de consultas de esquema genérico, que permite lanzar consultas sobre los esquemas representados en el modelo de datos unificado; (vi) La creación de notación gráfica para visualizar los esquemas; y (vii) la realización de un estudio para explorar el uso del modelo de datos unificado para definir un lenguaje de consulta genérico. Metodología. Para lograr los objetivos de la tesis, se ha seguido la metodología Design Science Research Methodology (DSRM). Esta metodología propone procesos de investigación iterativos organizados en varias etapas o actividades para lograr un objetivo. Las actividades que constituyen estos procesos son: (i) Identificación del problema y motivación, (ii) Definición de los objetivos de la solución, (iii) Diseño y desarrollo, (iv) Demostración, (v) Evaluación, y (vi) Conclusiones y comunicación. En un proceso DSRM el conocimiento producido en cada iteración se utiliza como retroalimentación para mejorar el diseño e implementación del artefacto. Resultados. Esta tesis aborda los principales problemas que surgen en el desarrollo de herramientas genéricas de bases de datos que integran los modelos de datos más relevantes: los modelos relacionales y NoSQL: (i) La definición de un metamodelo unificado que integre modelos de datos relacionales y NoSQL; (ii) La construcción de extractores de esquemas lógicos para cada modelo de datos. Debido a que la mayoría de los enfoques de extracción de esquemas han aplicado análisis de datos, hemos investigado el análisis estático de código como alternativa; (iii) Se ha construido una herramienta genérica de gestión de esquemas que incluye un lenguaje de consulta genérico de esquemas y un visualizador de esquemas. Al abordar estos problemas, nos hemos enfrentado a los desafíos que plantea una propuesta de esquema lógico que incluye variaciones estructurales y las relaciones más comunes entre las entidades de las bases de datos NoSQL. Contribuciones. Esta tesis contribuye con (i) El primer metamodelo lógico unificado que integra los paradigmas de base de datos más utilizados: Relacional y NoSQL. Esto implicó la definición de dos modelos de datos lógicos para sistemas NoSQL: uno para sistemas basados en agregados y otro para grafos; (ii) La especificación formal de mappings bidireccionales entre el modelo unificado y los modelos de datos individuales; (iii) La definición de una arquitectura con componentes reutilizables para crear un extractor de esquemas para cualquier sistema Relacional y NoSQL; (iv) Un enfoque Model-Driven Engineering para extracción de esquemas lógicos y refactoring a partir del análisis de código; (v) Un lenguaje de consulta genérico diseñado que permite a los desarrolladores lanzar consultas sobre los esquemas lógicos; (vi) La creación de una notación gráfica para visualizar los esquemas que incluye variaciones estructurales; (vii) Un estudio sobre la utilidad del modelo unificado para crear un lenguaje genérico para consultar datos de cualquier tipo de sistema de bases de datos; y una comparación de diferentes modelos genéricos.