Subido por cristian cabrera

Bases de datos NoSQL

Anuncio
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].
Descargar