Bases de datos NoSQL: mayor importancia a la escalabilidad y rendimiento de los datos, menor uso de estructuras fijas. Cristian Barragán. Departamento de Ciencias de la Computación , Universidad de las Fuerzas Armadas ESPE Cebarragan1@espe.edu.ec. Resumen- La facilidad de acceso al Internet y el auge de las redes sociales en la actualidad han tenido un gran impacto en cuanto al tráfico y manejo de información debido a que gracias a ambas razones la cantidad de datos digitales se ha visto incrementada de manera agigantada. Keywords: NoSQL, databases. telemática databases, relational I. INTRODUCCIÓN El gran flujo de información ha experimentado problemas de gestión por parte de las bases de datos relacionales que no pueden manejar tales volúmenes masivos de datos generados. Este problema se ha visto superado gracias al uso de bases de datos NoSQL, las cuales permiten realizar un manejo fácil y veloz de grandes volúmenes de datos. El presente estudio tiene por objetivo analizar y sintetizar información acerca de las ventajas y desventajas del uso de bases de datos NoSQL, las razones para migrar de un sistema SQL hacia un sistema NoSQL y la gestión de la información. Palabras clave: NoSQL, bases de datos, bases de datos relacionales. Abstract The ease access to the Internet and rise of social networks nowadays have had a great impact on traffic and information management, due to this reasons the amount of digital data has increased greatly. The large flow of information has been experiencing management problems that can’t handle by relational databases because of the large amounts of generated data. This problem has been overcome using NoSQL databases, which allow easy and fast handling of large volumes of data. This study aims to analyze and synthesize information about the advantages and disadvantages about NoSQL databases, the reasons to migrate from a SQL database to a NoSQL database and the management of information. Las bases de datos de uso predeterminado para el tratamiento de información han sido aquellas que utilizan el lenguaje SQL y almacenan la información mediante tablas. Las bases de datos SQL por mucho tiempo consiguieron trabajar con grandes volúmenes de información sin problema alguno, pero con el desarrollo tecnológico evidenciado durante la última década no solo se experimentó un crecimiento exponencial en el ámbito tecnológico, de la misma manera la información presentó un crecimiento abismal; debido a esto el manejo de la información se vio obstaculizado en las bases de datos SQL. Como medida a estos problemas surgen las bases de datos NoSQL (Not only SQL), Oracle [1] define a las bases de datos NoSQL como sistemas de almacenamiento de información que presentan una escalabilidad horizontal para mejorar la gestión de la información. Las bases de datos NoSQL no hacen uso del lenguaje SQL además de no utilizar una estructura de datos en forma de tabla como lo hacen las bases de datos relacionadas [2]. Las bases de datos NoSQL han encontrado su espacio en el mercado de manejo de información de empresas de gran importancia tales como Facebook, Twitter y YouTube [3], las mismas que manejan grandes volúmenes al ser redes sociales que crecen de manera exponencial con el tiempo. Las bases de datos NoSQL se basan en tres principios según Charry y Sanabria [4]: a) no cuenta con garantías ACID (Atomicidad Consistencia Aislamiento Durabilidad); b) las sentencias JOIN no son importantes; y c) presentan características BASE (Basic Availavility Soft state Eventual consistency). Por otra parte, desde la aparición del término NoSQL existe un inconveniente conceptual, en un principio se pensó usar el término “NoRel”, haciendo referencia a “No Relacional”, pero no sonaba comercial, puesto que la denominación puede interpretarse a primera vista como oposición de SQL; por ello se ha querido dar vuelta a este concepto aclarando que NoSQL (siglas en inglés de Not only SQL) se define como “No solo SQL”; “NoSQL es usado como un término general por todas las bases de datos y almacenes de datos que no siguen los populares y bien establecidos principios RDBMS (Relational Database Management System), y a menudo está relacionado con grandes conjuntos de datos y su manipulación en una escala Web Los objetivos planteados en este trabajo hacen referencia a las características que presentan las bases de datos NoSQL: - - - Determinar el mejor gestor de bases de datos NoSQL. Determinar las ventajas y desventajas que presentan las bases de datos NoSQL frente a las bases de datos relacionales. Determinar las razones por las cuales sería necesaria realizar la migración de un sistema SQL estructurado hacia un sistema NoSQL. Determinar los tipos de bases de datos NoSQL que existen dependiendo de la forma en la que almacenen la información. . II. MATERIAL Ventajas - A diferencia de las bases de datos relacionales, las bases de datos NoSQL están basadas en keyvalue pairs - Algunos tipos de almacén de bases de datos NoSQL incluyen diferentes tipos de almacenes como por ejemplo el almacén de columnas, de documentos, de key value store, de gráficos, de objetos, de XML y otros modos de almacén de datos. - Algunos tipos de almacén de bases de datos NoSQL incluyen almacenes de columnas, de documentos, de valores de claves, de gráficos, de objetos, de XML y otros modos de almacén de datos. - Podría decirse que las bases de datos NoSQL de código abierto tienen una implementación rentable. Ya que no requieren las tarifas de licencia y pueden ejecutarse en hardware de precio bajo. - Cuando trabajamos con bases de datos NoSQL, ya sean de código abierto o tengan un propietario, la expansión es más fácil y más barata que cuando se trabaja con bases de datos relacionales. Esto se debe a que se realiza un escalado horizontal y se distribuye la carga por todos los nodos. En lugar de realizarse una escala vertical, más típica en los sistemas de bases de datos relacionales Desventajas - La mayoría de las bases de datos NoSQL no admiten funciones de fiabilidad, que son soportadas por sistemas de bases de datos relacionales. Estas características de fiabilidad pueden resumirse en: “atomicidad, consistencia, aislamiento y durabilidad.” Esto también significa que las bases de datos NoSQL, que no soportan esas características, ofrecen consistencia para el rendimiento y la escalabilidad. - Con el fin de apoyar las características de fiabilidad y coherencia, los desarrolladores deben implementar su propio código, lo que agrega más complejidad al sistema. - Esto podría limitar el número de aplicaciones en las que podemos confiar para realizar transacciones seguras y confiables, como por ejemplo los sistemas bancarios. - Otras formas de complejidad encontradas en la mayoría de las bases de datos NoSQL, incluyen la incompatibilidad con consultas SQL. Esto significa que se necesita un lenguaje de consulta manual, haciendo los procesos mucho más lentos y complejos. Tipos de bases de datos NoSQL Dependiendo de la forma en la que almacenen la información, nos podemos encontrar varios tipos distintos de bases de datos NoSQL los cuales se van a describir a continuación. 1. Bases de Datos Clave – Valor En este tipo de base de datos se trabaja con contenedores y en el interior de ellos se almacenan tantos pares clavevalor como se desee. Existen distintos tipos de contenedores, algunos permiten pares duplicados, otros pares admiten valores nulos, etc. Estas bases de datos funcionan almacenando la información en memoria principal, por lo cual se aumenta aún más la velocidad de respuesta ante nuevas lecturas o escrituras. También pueden realizar un copiado periódico a disco para persistir los datos, y poder recuperarlos más adelante si se establece un punto de restauración, o bien la maquina cae y se desea recuperar una imagen concreta de cierto momento. Como ejemplo de las bases de datos clave-valor tenemos: Figura 1. Bases de Datos Clave – Valor De Acens.com, 2019. https://www.acens.com/wp-content/images/2014/02/bbdd-nosqlwp-acens.pdf DynamoDB Memcached Project Voldemort Scalaris Tokyo Cabinet Dynomite Redis Riak 2. Bases de Datos Documentales Las bases de datos clave – valor también se las conoce como tablas hash, su estructura consiste en el almacenamiento de información como en un diccionario. Estos diccionarios son tipos de datos que contienen tuplas de clave valor. Los clientes añaden y solicitan valores a partir de una clave asociada que es conocida por el usuario. En la actualidad estos sistemas de almacenamiento clave – valor se caracterizan por tener una elevada escalabilidad y un rendimiento muy bueno para volúmenes de datos muy grandes. A cambio, su estructura es muy sencilla, y sacrifica ciertas funcionalidades como la consistencia inmediata, la verificación de la integridad de datos o las referencias externas. Cuando usamos referencias externas e integridad referencial, deberá ser la el propio sistema o aplicación que hace uso de la base de datos la que se encargue de actualizar los valores correspondientes cada vez que exista un borrado o una modificación sobre el conjunto de datos. Figura 2. Bases de Datos Documental De Acens.com, 2019. https://www.acens.com/wp-content/images/2014/02/bbdd-nosqlwp-acens.pdf Las bases de datos documentales o también llamadas bases de datos orientadas a documento, son otro tipo de base de datos NoSQL, pero se diferencian con las bases de datos de clave- valor en el grado de complejidad y flexibilidad que poseen. En las bases de datos documentales el concepto principal es el de “documento”. Un documento es la principal unidad de almacenamiento de este tipo de base de datos, y toda la información que aquí se almacena, se hace en formato de documento. Las codificaciones más habituales para estos documentos son XML, YAML o JSON, pero también se pueden almacenar en formato Word o PDF. Habitualmente, los documentos se estructuran dentro de una serie de contenedores llamadas colecciones, las cuales son proporcionados por el sistema gestor documental. Los documentos son almacenados dentro de la base de datos con una clave única dentro del almacén, por la cual son también recuperados posteriormente. También existe un índice principal por esta clave primaria. Se pueden generar índices que afecten a otros campos, pero hay que evaluar bien su construcción, ya que aceleran y mejoran los tiempos de carga por ese campo, pero a cambio tienen necesidades de espacio y de mantenimiento a tener en cuenta. Como ejemplo tenemos: MongoDB SimpleDB CouchDB Terrastore 3. Bases de Datos Orientadas a Grafos por los nodos, y las relaciones entre los datos por las aristas. De este modo, se puede emplear la teoría de grafos para recorrer la base de datos y así gestionar y procesar la información (Velásquez 2013). Una base de datos orientada a grafos, es cualquier sistema de información en donde cada elemento tiene un puntero directo hacia sus elementos adyacentes, es decir, no sería necesario realizar consultas mediante índices. Existen varios casos en el que el uso de una base de datos orientada a grafos es más eficiente que utilizar cualquier otro tipo de base de datos, tanto relacional como NoSQL. La principal diferencia con respecto a otras bases de datos, es que el rendimiento de una base de datos orientada a grafos no se deteriora con el crecimiento de la base de datos, ni con consultas o procesamientos muy intensivos de los datos. Esto es debido a que el rendimiento será siempre proporcional al tamaño y el rendimiento que tenga el recorrer la parte del árbol que esté implicada, y no el tamaño global del grafo. El modelo de grafos dota al desarrollador de aplicaciones de una elevada flexibilidad para manipular el conjunto de datos, ya que le permite conectar los datos de forma que posteriormente sea sencillo realizar consultas o actualizaciones desde una aplicación. Este tipo de bases de datos nos permiten y facilitan realizar un mantenimiento progresivo y ágil de los sistemas, a medida que la aplicación va creciendo, de forma que se puede adaptar a las nuevas necesidades del negocio Como ejemplo tenemos a: Neo4j AllegroGraph FlockDB Titan Sparksee InfiniteGraph InfoGrid 4. Bases de Datos Orientadas a Objetos Figura 3. Bases de Datos Orientadas a Grafos De Acens.com, 2019. https://www.acens.com/wp-content/images/2014/02/bbddnosql-wp-acens.pdf Las bases de datos orientadas a grafos tienen la particularidad de representar la información como si de un grafo se tratara. La información viene representada En este tipo de bases la información se representa como objetos. Esta manera de representar la información es análoga a la que hace la programación orientada a objetos, que define y representa la información en un conjunto de datos y de operaciones que se pueden realizar sobre esos datos. - Deja de emplearse el SQL como lenguaje de base de datos. En su lugar, es el propio código de aplicación la que realiza esta funcionalidad. - Se elimina la doble representación del modelo de datos: el modelo de los objetos y el relacional. Ahora el diagrama de clases de la aplicación es el que construye el modelo de persistencia de la base de datos. - Mejora el rendimiento cuando se trata con objetos muy complejos. - Cualquier cambio en los objetos se aplican directamente en base de datos, no es necesario reconfigurar ni migrar nada. Figura 4. Bases de Datos Orientadas a Objetos De Acens.com, 2019. https://www.acens.com/wp-content/images/2014/02/bbddnosql-wp-acens.pdf Cuando un sistema asocia una base de datos de este tipo y un lenguaje de programación orientado a objetos, el resultado es un sistema gestor de bases de datos orientado a objetos. La clave de este tipo de almacenamiento reside en la potencia de los lenguajes de programación orientados a objeto, junto con la capa de persistencia que le proporciona una base de datos que ha sido diseñada específicamente para trabajar con aplicaciones desarrolladas con lenguajes orientados a objetos. Las bases de datos orientadas a objetos son las más antiguas de todas las bases de datos NoSQL, ya que el pulso que han mantenido con las bases de datos relacionales data de antes de que Google liberara los artículos de su GFS (Google File System) y Bigtable, la base de datos NoSQL creada por Google, y desde antes de que el movimiento NoSQL empezara a surgir con fuerza. Como ejemplo tenemos a: db4o GemStone InterSystems Caché NeoDatis ODB ObjectDatabase++ ObjectDB Objectivity/DB ODABA 5. Bases de Datos Orientadas a Columnas Los vendedores de bases de datos relacionales tradicionales se dieron cuenta de esto, y poco a poco fueron implementando capas de integración con los diferentes lenguajes de programación más populares, en lo que se conoce como sistemas de mapeo objeto– relacional. Sin embargo, esta traducción de objetos al modelo relacional no siempre se puede llevar a cabo, puesto que siempre se perderá algo de algún lado. O bien el modelo orientado a objetos perderá para adaptarse al 100% al modelo relacional, o bien el modelo relacional asociado al modelado orientado a objetos no cumplirá al 100% el paradigma relacional. Se puede decir que algunas de las ventajas que tienen las bases de datos orientadas a objetos con respecto al modelo relacional son: Figura 5 Bases de Datos Orientadas a Columnas De Acens.com, 2019. https://www.acens.com/wp-content/images/2014/02/bbddnosql-wp-acens.pdf Las bases de datos orientadas a columnas son otro caso particular de la enorme familia de las bases de datos NoSQL. En este tipo de bases de datos se hace contraposición al modelo relacional, en donde la información se estructura en columnas en lugar de en filas. Algunas de las bases de datos NoSQL más importantes y con una mayor aceptación pertenecen a este grupo. Bigtable, la solución NoSQL de Google, HBase, la base de datos de Hadoop, Cassandra, impulsada por Facebook y ahora bajo los brazos de Apache Software Foundation, son solo algunos ejemplos de este tipo de bases de datos. Las comparativas de rendimiento entre los sistemas de gestión por filas (especialmente RDBMS) y los basados en columna, vienen principalmente de la mano de la eficiencia de los accesos que realizan a disco. Los accesos a posiciones consecutivas se producen en una cantidad de tiempo sensiblemente menor que los accesos que se producen a posiciones aleatorias a disco. Tener un sistema con multitud de accesos aleatorios a disco puede lastrar en gran medida el rendimiento del sistema de almacenamiento. Algunas de las ventajas de utilizar bases de datos orientados a columna son: - Proporcionan un mejor rendimiento cuando es necesario realizar una transformación de datos que involucra a todas o gran parte de las filas, pero solo a una o una pequeña parte de las columnas. El acceso a las columnas, en este caso, produce un rendimiento mayor. - Son más eficientes cuando hay que sustituir un valor que afecta a una o más columnas en todas las filas de la colección. - Los sistemas basados en filas son más eficientes en los casos en los que es necesario obtener a la vez varias columnas de una misma fila, siempre que la fila sea lo suficientemente pequeña (esto es, que se pueda obtener con una única búsqueda aleatoria a disco). - Los sistemas de almacenamiento basados en filas son más eficientes cuando hay que escribir una fila nueva, se proporcionan todos los valores referentes a las columnas, y además la escritura se puede realizar con una única búsqueda en el disco. Las bases de datos basadas en columnas se emplean con mayor rendimiento cuando se utilizan para agilizar la consulta de grandes cantidades de información. Se ven beneficiadas técnicas como la Minería de Datos, la inteligencia de negocio, ventas, etc. Por otro lado, los sistemas basados en filas proporcionan habitualmente mejor rendimiento cuando la aplicación realiza frecuentes transacciones de base de datos, especialmente en arquitecturas cliente-servidor. El comercio electrónico, la banca o cualquier servicio que requiera la interacción con un usuario o cliente se verá beneficiado de este tipo de base de datos. Como ejemplo tenemos a: Google Bigtable HBase Hypertable Cassandra Accumulo 6. Bases de Datos Multivalor Las bases de datos multivalor conforman otra familia de bases de datos NoSQL, y sus principios son casi tan antiguos como los de las bases de datos relacionales. Las bases de datos multivalor persiguen la idea de la propiedad multivalor, que es aquella propiedad que puede estar representada por varios valores al mismo tiempo (OpenQM 2014). Como ejemplo tenemos a: OpenQM Rocket U2 OpenInsight InfinityDB El siguiente es un cuadro comparativo entre los principales tipos de bases de datos NoSQL, atendiendo a las principales características funcionales como puede ser la escalabilidad o el rendimiento. III. Desarrollo El objetivo de la comparativa no es otro que el de encontrar el tipo de base de datos adecuada a cada momento en función de las necesidades del proyecto (Strauch 2011). Cabe destacar que, en los puntos en los que pone que una característica es variable, significa que, dependiendo de la configuración que se le dé, puede adquirir un valor alto o bajo. Por ejemplo, en el caso de la escalabilidad de las bases de datos documentales, el particionado horizontal hay que efectuarlo a mano, de ahí que esté descrito como “variable”. Pero una vez que se ha realizado esa configuración inicial, se tiene un sistema que posee una escalabilidad mayor. Rendimiento Escabilidad - RQ1: ¿Cuál es el mejor gestor de bases de datos NoSQL? - RQ2: ¿Cuáles son las ventajas y desventajas que presentan las bases de datos NoSQL frente a las bases de datos relacionales? - RQ3: ¿Cuáles son las razones por las cuales sería necesaria realizar la migración de un sistema SQL estructurado hacia un sistema NoSQL? Tabla 1. Comparación de bases de datos NoSQL Modelo De Base Se usó el criterio PICOC (Population, Intervention, Comparison, Outcome, Context) expuesto por Petticrew y Roberts [6] para enmarcar las preguntas de investigación: Flexibilidad Complejidad Funcionalidad 3. Búsqueda de estudios Clave-Valor Alto Alto Alto Bajo Variable Columnar Alto Alto Moderado Bajo Mínimo Documental Alto Variable Alto Bajo Variable Grafo Variable Variable Alto Alto Teoría de Grafos Moderado Algebra Relacional Relacional Variable Variable Bajo Este estudio ha sido llevado a cabo como una revisión sistemática siguiendo las directrices propuestas por Kitcheham & Charters [5]. El objetivo general de la revisión consiste en evaluar artículos científicos presentados en revistas o congresos. 1. Identificación de la necesidad de la Revisión Sistemática Previo a la realización de este estudio se realizó una búsqueda de revisiones sistemáticas respecto a las bases de datos NoSQL, sin embargo, no se hallaron revisiones sistemáticas en las bases de datos de mayor uso en el ámbito científico. Esto incentivó a la realización de la presente revisión sistemática para hallar las características más representativas que marcan una fuerte diferencia entre las bases de datos NoSQL y las bases de datos relacionales. 2. Preguntas de investigación Para la recopilación de estudios se realizó una estructura que servirá de apoyo, la que cuenta con una estrategia de búsqueda bibliográfica, síntesis de datos y criterios de inclusión de los estudios pertinentes. Los estudios de la presente revisión sistemática se encontraron a través de la búsqueda en las bases de datos de Redalyc, Google Académico e IEEE Xplore Digital Library debido a que contienen los documentos a texto completo. La revisión se realizó en el mes de enero del 2019. 4. Selección de estudios Para la selección de estudios se utilizaron cadenas de búsqueda que incluyeron las frases “Bases de datos”, “Bases de datos NoSQL”, asimismo los términos “NoSQL” y “estructura”. Estas frases y términos de búsqueda también se emplearon en inglés: “Data Bases”, “NoSQL Data Bases”, “structure” y “NoSQL”. Se utilizaron las siguientes cadenas de búsqueda: “Bases de datos” OR “Data bases” AND “Bases de datos NoSQL” OR “NoSQL Data bases” AND “NoSQL”. “Bases de datos” OR “Data bases” AND “Bases de datos NoSQL” OR “NoSQL Data bases” AND “NoSQL” AND “Estructura” OR “Structure”. Se realizó una búsqueda con esta estructura el día 10 al 13 de enero del 2019. Para que el estudio fuera incluido en la presente revisión, debió cumplir los siguientes criterios de inclusión: Estudios referentes a bases de datos NoSQL. Publicaciones realizadas entre el 2015-2019 Estudios publicados en revistas. Estudios publicados en el idioma español o inglés Estudios realizados, que incluyan la utilización de bases de datos NoSQL. Estudios realizados, donde se incluya revisiones bibliográficas sobre bases de datos NoSQL. A continuación, se presentan los estudios primarios que fueron elegidos para responder las preguntas de investigación de esta revisión sistemática. Tabla 2. Estudios seleccionados sistemática de literatura Autor (es) Título [7] Uta Störl; Alexander Tekleab; Meike Klettke; Stefanie Scherzinger Kosovare Sahatqija; Jaumin Ajdari Xhemal Zenuni; Bujar Raufi; Florije Ismaili Ana Flores; Stalin Ramírez; Renato Toasa; Javier Vargas; Renato Urvina Barrionuevo; José M. Lavin Yudisney Vazquez Ortíz , Lisleydi Mier Pierre, Anthony R. Sotolongo León In for a Surprise When Migrating NoSQL Data 2018 Inglés Comparison between relational and NOSQL databases 2018 Inglés Performance Evaluation of NoSQL and SQL Queries in Response Time for the Egovernment Características no relacionales de PostgreSQL_ incremento del rendimiento en el uso de datos JSON Experiencias con sistemas de bases de datos NoSQL para su implementación en la docencia Análisis de rendimiento entre la base de datos relacional MySQL y una base de datos no relacional: MongoDB 2018 Inglés 2016 Español 2017 Español 2016 Español [8] Primer filtro se basa en la relación del título y el contenido del abstract con el tema de esta revisión sistemática. Segundo filtro se basa en la lectura analítica de los estudios, lo que permitió extraer información destacada e identificarla para su uso en esta revisión sistemática. El resultado del proceso de búsqueda permitió seleccionar 20 estudios que cumplieron con los criterios de selección. A continuación, tuvo lugar la lectura crítica de todo el documento. La utilidad de los artículos encontrados estuvo dada por las recomendaciones del artículo y por el aprovechamiento que se le utilizó. La búsqueda fue realizada por los autores de la investigación. [9] [10] [11] Asenjo Bonzi, Edmundo Jos [12] Orellana Cordero, Marcos Vele Zhingri, César Augusto [13] Aya AI -Sakran ; Hazem Qattous Mohammad Hijjaw IV. Análisis y resultados Los estudios seleccionados para esta investigación se encuentran sintetizados en la Tabla 2 enfatizando en cuatro aspectos de los artículos científicos: un ID asignado por los investigadores para identificarlos al responder las preguntas de investigación, el autor (es), el nombre del estudio publicado, la fecha de publicación y el idioma en que fue indexado en la revista o congreso. Fecha revisión ID Finalmente, para la selección de estudios se utilizaron los siguientes métodos: Búsqueda en las bases de datos seleccionadas con las cadenas de búsqueda previamente concretadas. en la A proposed performance evaluation of NoSQL databases in the field of IoT Idioma 2018 Inglés [14] Andreas Ringlstetter ; Stefanie Scherzinger ; Tegawendé F. Bissyandé [15] Michael Joseph Mior ; Kenneth Salem ; Ashraf Aboulnaga ; Rui Liu Benymol Jose ; Sajimon Abraham [16] [17] [18] Jitender Kumar Varsha Garg Lokesh Kumar, Dr. Shalini Rajawat,Krati Joshi [19] John Klein ; Ian Gorton [20] Veronika Abramova, Jorge Bernardino, Pedro Furtado [21] Felipe Mathias Schmidt ; Claudio Geyer ; Alberto Schaeffer-Filho ; Stefan DeBloch ; Yong Hu Marlen Treviño Villalobos; Leonardo Víquez Acuña; Rocío Quirós Oviedo; Gaudy Esquivel Vega [22] Data Model Evolution Using Object -NoSQL Mappers: Folklore or State -of-the -Art? NoSE: Schema Design for NoSQL Applications 2016 Inglés [23] Viorica Varga, Katalin Tünde Jánosi -Rancz, Balázs Kálmán 2017 Inglés [24] Exploring the Merits of NoSQL: A study based on MongoDB Security analysis of unstructured data in NOSQL MongoDB database Comparative analysis of NoSQL (MongoDB) With MySQL Database Design assistant for NoSQL technology selection SQL or NoSQL? Performance and scalability evaluation Change data capture in NoSQL databases: A functional and performance comparison Una comparacion de rendimiento entre MongoDB, Arango DB y CouchBase para la operación lectura sobre bases de datos geográficas 2017 Inglés Makris Antonios, Tserpes Konstantinos, Andronikou Vassiliki, Anagnostopoulos Dimosthenis Hanen Abbes ; Soumaya Boukettaya ; Faiez Gargouri [25] 2017 Inglés [26] 2015 Inglés 2016 Inglés 2015 Inglés 2015 Inglés Harol Andrey Herrera, Carlos Rueda Valenzuela Conceptual Design of Document NoSQL Database with Formal Concept Analysis A Classification of NoSQL Data Stores Based on Key Design Characteristics 2016 Inglés 2016 Inglés Learning ontology from Big Data through MongoDB database NoSQL, la nueva tendencia en el manejo de datos 2015 Inglés 2015 Español Partiendo de los estudios seleccionados (20) en la Figura 6 se presenta la distribución por años de los mismos, se puede observar que en el transcurso del año 2016 existieron mayor cantidad de estudios realizados acerca de las bases de datos NoSQL, también se puede observar que la variación de estudios respecto al año 2018 ha sido mínima, por lo que se puede asegurar que la importancia de estudios sobre los sistemas NoSQL no ha disminuido en lo absoluto. Cantidad de estudios realizados 2018 25% 2018 2015 25% Español 2017 20% 2015 2016 2016 30% 2017 2018 Figura 6. Distribución por años de los estudios seleccionados A continuación, en la Tabla 3 se presentan las respuestas para las preguntas de investigación indicando el ID de los artículos científicos que fueron analizados y hacen referencia a una respuesta específica. Tabla 3. Resultados de la revisión sistemática Pregunta de investigación Estudios RQ1: ¿Cuál es el mejor gestor de bases de datos NoSQL? Figura 7 Relación de la escabilidad y la velocidad de bases de datos nosql y sql MongoDB Cassandra CouchDB [11], [12], [16], [17], [18], [22], [25] RQ2: ¿Cuáles son las ventajas y desventajas que presentan las bases de datos NoSQL frente a las bases de datos relacionales? Ventajas: Escalabilidad Bajo costo Flexibilidad Velocidad Alta disponibilidad [8], [11], [13], [14], [15], [16], [17], [19], [23], 24], [26] Desventajas: Programación no intuitiva No estandarizado Desarrollo de aplicaciones presenta mayor complejidad Falta de control de seguridad [8], [11], [13], [14], [15], [16], [17], [19], [23], [24], [26] Figura 8 Uso de bases de datos Nosql y sql RQ3: ¿ Cuáles son las razones por las cuales sería necesaria realizar la migración de un sistema SQL estructurado hacia un sistema NoSQL? Escalabilidad Facilidad de manejo de información Velocidad de procesamiento Flexibilidad [7], [8], [9], [10], [12], [18], [20], [21], [24] Figura 9 clasificación de las bases de datos según el teorema CAP datos relacionales. Los sistemas relacionales poseen una serie de características y cumplen una serie de requisitos indispensables para muchos sectores de la informática, como la banca o el comercio electrónico. Aún quedan muchos aspectos por explorar en esta tecnología, ya que aún no está madura, faltando todavía experiencia en sistemas en producción de cara al público. Si se compara con los sistemas relacionales, éstos llevan solucionando problemas de almacenamiento y seguridad de datos desde hace más de 50 años. Figura 10 Bases de datos populares V. CONCLUSIONES La revisión sistemática analizó estudios comprendidos entre los años 2015 – 2018, donde se consideraron 20 artículos para responder las preguntas de investigación en relación a las bases de datos NoSQL. Las conclusiones de mayor relevancia en el estudio hacen referencia a que: a) gestores como MongoDB, ArangoDB y CouchDB se presentan como excelentes opciones para el manejo de sistemas NoSQL, siendo MongoDB el que sobresale del resto debido a sus tiempos de respuesta, facilidad de uso y procesamiento de información; b) las bases de datos NoSQL presentan grandes ventajas frente a las bases de datos relacionales siendo la más importante la escalabilidad que tienen, a su vez cuentan con desventajas que a priori no presentan mayor obstáculo para optar por el uso de sistemas NoSQL, teniendo como única excepción un clara falta de control de acceso, que supone problemas de seguridad en algunos casos; c) el proceso de migración de una base de datos relacional hacia una NoSQL se ve condicionada en su gran mayoría a los volúmenes de información que se deseen manejar, ya que las bases de datos relaciones presentan problemas con la gestión de datos digitales masivos . Las bases de datos NoSQL son una tecnología muy potente y variada que, si se sabe emplear de forma correcta, resulta ser una herramienta valiosa que permitirá almacenar grandes cantidades de datos y extraer conocimiento de ellos de forma eficiente, tan necesario hoy en día debido al fenómeno BigData. No en vano, los puestos profesionales de informáticos que poseen conocimientos sobre alguna de estas tecnologías se están comenzando a demandar ampliamente. Estas tecnologías son muy flexibles y versátiles, proponiendo soluciones a problemas que de otra manera han resultado ser difíciles de abordar. Pero esta tecnología no ha llegado para reemplazar a las bases de Las bases de datos NoSQL han llegado para complementar la oferta de bases de datos de la que se dispone a la hora de abordar los problemas, y en ningún caso es recomendable alcanzar una posición extrema con respecto a las decisiones que se toman en este ámbito. Cada problema debe ser analizado en su conjunto, con sus necesidades particulares para cada caso, y una vez se tiene un esquema claro de esto, se debe buscar la solución de almacenamiento de entre todas las disponibles que mejor cubra las necesidades del problema. REFERENCIAS [1] Oracle, “¿Qué es una Base de Datos NoSQL?,” 19-Apr2016. [Online]. Available: https://blogs.oracle.com/spain/ques-una-base- de-datos-nosql. [Accessed: 24-Jan-2019]. [2] A. Castro Romero, J. S. González Sanabria, and M. Callejas Cuervo, “Utilidad y funcionamiento de las bases de datos NoSQL.” [Online]. Available: https://revistas.uptc.edu.co/index.php/ingenieria/article/view /2115/2 078. [Accessed: 24-Jan-2019]. [3] J. D. Ortiz Tovar, “Bases de datos NoSQL en Big Data,” p. 16, Sep. 2017. [4] A. M. B. Charry and A. F. Sanabria, “Implementación de una base de datos NoSQL para la generación de la matriz O/D.,” p. 206, 2013. [5] B. A. Kitchenham, Kitchenham, B.: Guidelines for performing Systematic Literature Reviews in software engineering. EBSE Technical Report EBSE-2007-01. 2007. [6] M. Petticrew and H. Roberts, Systematic Reviews in the Social Sciences. A PRACTICAL GUIDE. 2006. [7] U. Störl, A. Tekleab, M. Klettke, and S. Scherzinger, In for a Surprise When Migrating NoSQL Data. 2018. [8] K. Sahatqija, J. Ajdari, X. Zenuni, B. Raufi, and F. Ismaili, “Comparison between relational and NOSQL databases,” in 2018 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2018, pp. 0216–0221. [9] A. Flores, S. Ramírez, R. Toasa, J. Vargas, R. U.Barrionuevo, and J. M. Lavin, “Performance Evaluation of NoSQL and SQL Queries in Response Time for the E-government,” in 2018 International Conference on eDemocracy eGovernment (ICEDEG), 2018, pp. 257– 262. [10] Y. Vazquez Ortíz, L. Mier Pierre, and A. R. Sotolongo León, “Características no relacionales de PostgreSQL: [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] incremento del evaluation of NoSQL databases in the field of IoT,” in 2018 8th International Conference on Computer Science and Information Technology (CSIT), 2018, pp. 32–37. A. Ringlstetter, S. Scherzinger, and T. F. Bissyandé, “Data Model Evolution Using Object-NoSQL Mappers: Folklore or State-of-the- Art?,” in 2016 IEEE/ACM 2nd International Workshop on Big Data Software Engineering (BIGDSE), 2016, pp. 33–36. M. J. Mior, K. Salem, A. Aboulnaga, and R. Liu, “NoSE: Schema Design for NoSQL Applications,” IEEE Trans. Knowl. Data Eng., vol. 29, no. 10, pp. 2275–2289, Oct. 2017. B. Jose and S. Abraham, “Exploring the merits of nosql: A study based on mongodb,” in 2017 International Conference on Networks Advances in Computational Technologies (NetACT), 2017, pp. 266– 271. J. Kumar and V. Garg, “Security analysis of unstructured data in NOSQL MongoDB database,” in 2017 International Conference on Computing and Communication Technologies for Smart Nation (IC3TSN), 2017, pp. 300–305. L. Kumar, D. S. Rajawat, and K. Joshi, “Comparative analysis of NoSQL ( MongoDB ) with MySQL Database,” 2015. J. Klein and I. Gorton, “Design assistant for NoSQL technology selection,” in 2015 1st International Workshop on Future of Software Architecture Design Assistants (FoSADA), 2015, pp. 1–6. V. Abramova, J. Bernardino, and P. Furtado, “SQL or NoSQL? Performance and scalability evaluation,” Int. J. Bus. Process Integr. Manag., vol. 7, no. 4, p. 314, 2015. F. M. Schmidt, C. Geyer, A. Schaeffer-Filho, S. DeBloch, and Y. Hu, “Change data capture in NoSQL databases: A functional and performance comparison,” in 2015 IEEE Symposium on Computers and Communication (ISCC), 2015, pp. 562–567. M. Trevino Villalobos, L. Viquez Acuna, R. Quiros Oviedo, and G. Esquivel Vega, Una comparación de rendimiento entre MongoDB, ArangoDB y CouchBase para la operación lectura sobre bases de datos geográficas. 2018. V. Varga, K. T. Jánosi-Rancz, and B. Kalman, Conceptual Design of Document NoSQL Database with Formal Concept Analysis, vol. 13. 2016. A. Makris, K. Tserpes, V. Andronikou, and D. Anagnostopoulos, “A Classification of NoSQL Data Stores Based on Key Design Characteristics,” Procedia Comput. Sci., vol. 97, pp. 94–103, Jan. 2016. H. Abbes, S. Boukettaya, and F. Gargouri, “Learning ontology from Big Data through MongoDB database,” in 2015 IEEE/ACS 12th International Conference of Computer Systems and Applications (AICCSA), 2015, pp. 1–7. H. Andrey Herrera and C. Rueda Valenzuela, “NoSQL, la nueva tendencia en el manejo de datos,” vol. 4, pp. 147– 150, 2016. Acens.com, 2019. [Online]. Available: https://www.acens.com/wp-content/images/2014/02/bbddnosql-wp-acens.pdf. [Accessed: 20- Jun- 2019].