Está en la página 1de 12

Machine Translated by Google

ESTUDIAR INFORMÁTICA

N° 1 (26) Sistemas y tecnología de la información. 2022

Norberto ZANIEWICZ1,
ORCID: 0000­0002­9516­7529

Andrzej SALAMOŃCZYK1
ORCID: 0000­0003­1562­6762

1
Universidad de Ciencias Naturales y Humanidades de Siedlce
Facultad de Ciencias Exactas y Naturales
Instituto de Informática ul. 3 Maja
54, 08­110 Siedlce, Polonia

Comparación de bases de datos MongoDB, Neo4j y ArangoDB utilizando el


generador de datos desarrollado para bases de datos NoSQL

DOI: 10.34739/si.2022.26.04

Abstracto. Las bases de datos NoSQL están ganando cada vez más popularidad y son una alternativa importante a
las bases de datos relacionales. Ejemplos de tales bases de datos son Neo4j, MongoDB y ArangoDB. Estas bases
de datos se describen en este artículo, se comparan entre sí y se presentan los resultados de rendimiento para
agregar un objeto a la base de datos, eliminar un objeto, buscar y completar la base de datos. Los resultados muestran
que la base de datos más rápida es MongoDB, excepto por una medida de eliminación.

Palabras clave. Bases de datos NoSQL, Neo4j, MongoDB, ArangoDB

Introducción

Las soluciones de bases de datos, desde relacionales, pasando por redes, jerárquicas, orientadas a objetos
y no relacionales, se están desarrollando dinámicamente con el uso de nuevas tecnologías. Las empresas
adaptan constantemente sus soluciones a las necesidades de los clientes, intentando mantenerse por delante
de la competencia y obtener incluso una ventaja temporal. Por tanto, el entorno de bases de datos es uno de los
más progresistas. El rechazo del modelo de base de datos relacional por parte de los pioneros de las no relacionales.
Machine Translated by Google

62 N. Zaniewicz, A. Salamończyk

Solutions fue una respuesta a la demanda del mercado en el segmento de soluciones más eficientes con grandes

cantidades de datos. Empresas como Google y Facebook comenzaron a trabajar en diversas formas de abordar la

creciente cantidad de todo tipo de información que deben almacenar y procesar, lo que se ha vuelto cada vez más costoso

tanto desde el punto de vista financiero como de la eficiencia.

En el mismo período se desarrollaron sucesivos sistemas de bases de datos que satisfacían necesidades cada vez

más diferentes de almacenamiento de datos. Los gráficos, que facilitan el mapeo de relaciones y la búsqueda de patrones,

se utilizan actualmente como sistemas de creación de escenarios de compras, por ejemplo en eBay. Bases de datos de

documentos que facilitaron a los desarrolladores de aplicaciones el almacenamiento y procesamiento de documentos JSON.
sin necesidad de interferir en su estructura.

La aparición de bases de datos NoSQL también estuvo asociada con nuevos sistemas de gestión de bases de datos

y, lo que es más importante, nuevos lenguajes o estructuras de consulta, a menudo significativamente diferentes del SQL

estándar. El ejemplo emblemático son las bases de datos de gráficos, basadas en relaciones que se describen en los

bordes del gráfico entre nodos. Los lenguajes gráficos como Cypher, GraphQL, Gremlin y SPARQL fueron creados

especialmente para las necesidades de estas bases de datos. Las consultas en bases de datos de documentos parecen

un poco más amigables para los usuarios de SQL, donde el lenguaje de consulta es similar y, a veces, casi idéntico a su

contraparte relacional o lenguajes de programación.

Las adaptaciones de nuevas soluciones aportan beneficios mensurables en forma de ahorro de recursos o una

mejora significativa en la eficiencia operativa. Por lo tanto, se actualizan constantemente, pero intentan mantener sus

conceptos básicos sin cambios y muy a menudo son compatibles con versiones anteriores. Las bases de datos NoSQL

son un ejemplo de desarrollo dinámico, impulsado por el desarrollo de toda la industria de la tecnología de la información.

Las demandas debían recibir una respuesta adecuada. Podemos esperar la aparición de muchos sistemas o actividades

híbridos para la compatibilidad del funcionamiento de varias soluciones. En raras ocasiones, en soluciones grandes, un

enfoque de base de datos es suficiente. Por lo tanto, vale la pena comparar varios sistemas de bases de datos, incluida la

medición de su eficacia.

Bases de datos NoSql

En este capítulo discutiremos tres ejemplos de bases de datos NoSql, son Neo4j, MongoDB, ArangoDB, que se

compararán entre sí.

2.1. neo4j

Neo4j no es sólo un sistema de base de datos de gráficos, sino también la empresa responsable del mismo. En 2000,

los futuros fundadores de Neo4j, influenciados por los problemas de rendimiento encontrados en las relaciones
Machine Translated by Google

Comparación de bases de datos MongoDB, Neo4j y ArangoDB utilizando el generador de datos desarrollado… 63

bases de datos, comenzó a trabajar en un prototipo de base de datos gráfica. Los creadores formalizaron sus
actividades sólo después de siete años, fundaron la empresa y luego aparecieron las primeras versiones de esta
base de datos. Sin embargo, recién en 2010 apareció la versión 1.0, iniciando una nueva etapa de
Soluciones de bases de datos.

La base de datos implementada en Java se fue desarrollando dinámicamente y los años siguientes trajeron
versiones revisadas y enriquecidas con nuevas funcionalidades. Los creadores recaudaron cada vez más fondos
y grandes clientes utilizando su solución. Actualmente, Neo4j es la solución más popular entre las bases de
datos de gráficos. Esta posición en el mercado se debe a su rica funcionalidad.
Cumplimiento de ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad), es decir, un conjunto de propiedades
que garantizan la ejecución consistente de transacciones en la base de datos, soporte para agrupación y facilidad
de escalado. Estas son las características que afectan la calidad cada vez mayor de esta base de datos de
gráficos.

La solución paga ofrecida, versión Enterprise, proporciona una excelente escalabilidad horizontal, es decir,
es muy fácil agregar recursos a través de nuevas máquinas en el grupo de recursos. El escalado se realiza
mediante dos tipos de agrupación, que son la agrupación de alta disponibilidad y la agrupación informal. El
primer tipo de agrupación permite el uso de máquinas distribuidas, donde uno de los servidores actúa como
supervisor de varias máquinas esclavas. En caso de falla, se selecciona un nuevo supervisor y la base de datos
opera continuamente, lo que produce una alta disponibilidad.

La agrupación informal, por otro lado, proporciona réplicas transferibles de solo lectura. Cuando falla una de
las instancias de la base de datos, los servidores primarios brindan acceso de lectura y escritura, incluida la
modificación de datos. Sin embargo, muy a menudo se utilizan bases de datos de gráficos para buscar
información, de ahí un número significativo de réplicas con funcionalidad de solo lectura. Esta estructura permite
una gestión eficiente de los recursos y garantiza una seguridad y disponibilidad de primer nivel. Esta solución
también cuenta con un equilibrador de carga para aumentar la comodidad de uso cargando uniformemente todos los disponibles.
recursos.

Para la comunicación entre la base de datos y las aplicaciones se utiliza el protocolo binario Bolt creado en
2015, que ganó mayor interés un año después al utilizarlo en la versión 3.0 del servidor Neo4j. Este protocolo,
que funciona sobre sockets TCP, permite enviar mensajes con parámetros.
El servidor responde a dicha consulta con un mensaje de respuesta con un flujo opcional de resultados. Las
bases de datos Neo4j pueden implementarse como soluciones de servidor y también integrarse localmente, por
ejemplo en una aplicación Java (Fig. 1). Esto significa que en el caso de soluciones locales o implementación
para dispositivos móviles, se reduce la carga de comunicación de red. Neo4j también proporciona API Java
nativa para la manipulación de datos en aplicaciones.
Machine Translated by Google

64 N. Zaniewicz, A. Salamończyk

Figura 1. Aplicación Java con instancia de base de datos Neo4j integrada localmente. Fuente: [8]

Proporcionar dicho soporte por parte del fabricante permite a los programadores crear fácilmente una aplicación

basada en la API proporcionada sin involucrar recursos del servidor. Neo4j adoptó un modelo de datos gráficos, es decir,

conjuntos de nodos y bordes entre ellos descritos con valores. Los nodos pueden almacenar información sobre el objeto

que representan. Los bordes son conexiones dirigidas y descritas de nodos en el gráfico. Dicha conexión le permite

realizar fácilmente operaciones como, por ejemplo, contar pasos entre los nodos de interés, así como devolver nodos

dependientes de una manera característica, especificada en la consulta.

La característica distintiva de Neo4j es el uso de su propio lenguaje de consulta Cypher. Este lenguaje de consulta

declarativo se desarrolló durante el trabajo en el sistema de base de datos de gráficos.

Inicialmente, estaba destinado a ser el lenguaje de consulta nativo solo en Neo4j, pero en 2015 se transformó en la

iniciativa openCypher, cuyo objetivo es proporcionar al segmento de bases de datos de gráficos un lenguaje de consulta

universal completamente documentado para todos los conjuntos de datos de este tipo. Cypher es una traducción

sistematizada de la descripción de la relación de nodos y aristas en un gráfico a una consulta. Actualmente, utiliza muchas

palabras clave presentes en SQL, pero a menudo en un sentido diferente al de su competidor relacional. Todo el lenguaje

funciona con patrones relativamente costosos que, cuando se usan correctamente, permiten obtener resultados que no

están disponibles para los motores de bases de datos clásicos.

Actualmente, las grandes tiendas online utilizan Neo4j para realizar sugerencias contextuales. Se realiza un

seguimiento de los cambios en el gráfico, como los elementos de la lista de deseos, y en función de ellos, se proponen

más. Se utiliza un mecanismo similar para sugerir artículos en sitios de subastas basándose en frases buscadas.
Machine Translated by Google

Comparación de bases de datos MongoDB, Neo4j y ArangoDB utilizando el generador de datos desarrollado… 65

2.2. MongoDB

MongoDB es una de las soluciones de documentos en el segmento de bases de datos NoSQL. Esto significa que el

sistema opera almacenando datos en documentos similares a JSON. La base de datos de documentos es popular. Lo

utilizan empresas tan grandes como Adobe, eBay y Electronic Arts. Se ofrece en varias versiones, incluida la comunitaria

gratuita y la empresarial de pago. La opción paga incluye más funciones de administración de bases de datos y opciones

de seguridad adicionales, por ejemplo, autenticación mediante el protocolo Kerberos. Al igual que sus competidores, ofrece

escalabilidad horizontal y mecanismos de replicación para garantizar la seguridad de los datos.

La escalabilidad de esta base de datos básicamente solo está limitada por la cantidad de recursos conectados en una

red distribuida. Gracias al uso del sistema de fragmentación de Google BigTable, es decir, la división en servidores maestro

y esclavo, los datos se dividen y distribuyen en varios servidores, que en teoría se pueden añadir infinitamente al conjunto

de recursos. La lectura de los datos está controlada por un proceso adecuado que conoce la localización de los datos y que

ejecuta la petición dirigida al servidor. El sistema de compartición automatiza muchos procesos de distribución y cuidado de

la carga, gracias a lo cual la lectura incluso desde diferentes servidores es rápida y puede realizarse simultáneamente desde

diferentes máquinas. Replicación: es decir, crear una copia del servidor para garantizar la redundancia basándose en la

misma solución que el escalado, los servidores esclavos tienen una copia de los datos de los servidores maestros, esto

garantiza la redundancia y seguridad deseadas en caso de falla.

Se pueden utilizar réplicas adicionales como servidores de lectura adicionales para aumentar el rendimiento.

MongoDB también proporciona controladores de bases de datos para muchos lenguajes de programación, incluidos C+

+, C#, Java, PHP o Python, lo que permite su amplia aplicación. La comunicación con el servidor se basa en la interfaz http

o REST, lo que permite un fácil uso en aplicaciones de red.

Los controladores más recientes permiten elegir el trabajo sincrónico o asincrónico con la base de datos y están desarrollados

para soportar otros lenguajes.

MongoDB es una base de datos NoSQL y al igual que otras soluciones de este tipo, partió de ciertos supuestos

relacionales en favor de un sistema más eficiente. Esta base de datos utiliza documentos como principal unidad de

almacenamiento de datos. Tal como lo entiende este sistema de bases de datos, un documento es el equivalente a una fila

en las bases de datos relacionales, con la diferencia de que puede tener valores anidados, que en el caso de las bases de

datos estándar deben implementarse mediante claves foráneas y tablas adicionales. También existe la opción de utilizar

referencias a otros documentos, lo que facilita la asignación de esquemas de bases de datos relacionales en los que nos

esforzamos por normalizar los datos. El proceso de normalización consiste en crear tablas y relaciones adecuadas a las

reglas impuestas, con el fin de evitar redundancias y garantizar la coherencia de los datos.
Machine Translated by Google

66 N. Zaniewicz, A. Salamończyk

En el caso de MongoDB, los modelos de datos desnormalizados simplifican el trabajo , así es posible

manipular todo el documento en una sola operación. Un documento en una base de datos de este tipo es una

estructura de datos ordenada jerárquicamente que utiliza un formato apropiado, por ejemplo, JSON (JavaScript

Object Notation) en representación visual y BSON, un documento JSON en formato binario.

El uso de documentos JSON hizo que el lenguaje de consulta predeterminado utilizado en MongoDB fuera

JavaScript. Además, cada controlador utiliza la estructura del idioma en el que fue escrito.

En la práctica, esto significa que la elección del idioma afecta la forma en que se crean las consultas.

2.3. ArangoDB

ArangoDB es el nombre de un sistema de base de datos bajo licencia gratuita y de código abierto, creado en

2011. Inicialmente se publicó con el nombre de AvocadoDB, lo que enfrentó problemas legales, y un año después

obtuvo su nombre actual. Propuesto por ArangoDB. El sistema de base de datos es uno de los más universales

porque admite hasta tres modelos de datos: clave­valor, documentos y gráficos.

La motivación para esta dirección de desarrollo fue la combinación de modelos que ya ofrecen las bases de

datos NoSQL en una sola solución. Neo4j usa gráficos, MongoDB usa documentos y los creadores de ArangoDB

decidieron crear una base con un enfoque multimodelo para superar la necesidad de usar diferentes soluciones

para diferentes tipos de datos. Este sistema de base de datos relativamente nuevo tiene muchos clientes, incl. se

trata de Cisco o Thomson Reuters, que es una de las empresas de entrega de mensajes más grandes. Utiliza

ArangoDB para construir su plataforma para el intercambio de información interna, el análisis y la gestión de

inteligencia. El lenguaje de consulta AQL en particular ayuda aquí.

La motivación para esta dirección de desarrollo fue la combinación de modelos que ya ofrecen las bases de

datos NoSQL en una sola solución. Neo4j usa gráficos, MongoDB usa documentos y los creadores de ArangoDB

decidieron crear una base con un enfoque multimodelo para superar la necesidad de usar diferentes soluciones

para diferentes tipos de datos. Este sistema de base de datos relativamente nuevo tiene muchos clientes, incl. Se

trata de Cisco y Thomson Reuters, una de las empresas de distribución de noticias más grandes del mundo. Utiliza

ArangoDB para construir su plataforma para el intercambio de información interna, análisis y gestión de inteligencia,

el lenguaje de consulta AQL ayuda en dichas tareas.

A pesar de su corta edad, ArangoDB ha sido equipado con muchas funcionalidades que tienen los

competidores. Proporcionar, entre otras cosas, escalamiento vertical, es decir, el uso de servidores cada vez más

eficientes, y escalamiento vertical, es decir, la creación de clústeres a partir de muchos servidores. Al igual que

MongoDB y Neo4j, utiliza muchos servidores, cada uno de los cuales tiene algunos datos y dependiendo de él

puede ser un servidor líder (servidor principal) o un servidor esclavo. Todo el sistema también utiliza coordinadores que
Machine Translated by Google

Comparación de bases de datos MongoDB, Neo4j y ArangoDB utilizando el generador de datos desarrollado… 67

actuar como intermediario entre el cluster ArangoDB y los clientes, gracias al cual estos realizan toda o parte de

la consulta dependiendo de los datos que tengan. Una estructura de este tipo garantizará una fácil escalabilidad

al agregar nuevos servidores al conjunto de máquinas. El modelo utilizado también es un aspecto importante de

la escalabilidad. Los diferentes modelos escalan mejor vertical u horizontalmente.

ArangoDB también soporta muchos lenguajes de programación, Java, JavaScript, PHP, .NET y Scala son

sólo algunos de ellos. En comunicación con el servidor, puede utilizar el protocolo http o el protocolo binario

VelocyStream introducido en la versión 3.2, que en algunas soluciones de consultas cortas gana ventaja sobre el

protocolo http. Para soportar muchos modelos y utilizar varios de ellos en una sola consulta, ArangoDB ha

implementado el AQL (ArangoDB Query Language) declarativo. Este idioma utiliza palabras en inglés como

palabras clave.

Actualmente, ArangoDB se está volviendo popular entre empresas indecisas que están en el proceso de

definir sus necesidades de almacenamiento de datos, o que confían en que una solución uniforme no satisfará

sus necesidades. Las bases de datos NoSQL discutidas se encuentran entre las más populares y se decidió

centrarse en ellas, probarlas y compararlas directamente.

2.4. Prueba y comparación de bases de datos NoSQL

Al analizar la bibliografía en términos de comparación de bases de datos, lo más frecuente es que nos

encontremos con bases de datos SQL. Al examinar las bases de datos SQL, podemos tener en cuenta varios

factores como el rendimiento y la seguridad. Por ejemplo, Barczak et al., [1]. investigó la influencia de los métodos

de indexación en el funcionamiento efectivo de la base de datos y Skaruz, [2], analizó la seguridad de las bases

de datos combinando redes neuronales y un enfoque de clasificación.

En [3] se describe una comparación del rendimiento de las bases de datos SQL y NoSQL. Li y Manoharan

compararon operaciones de lectura, escritura, eliminación y creación de instancias en almacenes clave­valor

implementados por bases de datos NoSQL y SQL. Sus resultados mostraron que no todas las bases de datos
NoSQL funcionan mejor que las bases de datos SQL.

Martins, Abbasi y Sá [4] describen estudios más detallados sobre el rendimiento. Probaron y evaluaron:
MongoDB; Casandra; HBase; OrientDB; Voldemort; Bases de datos Memcached y Redis. Tang y Fan [5] también

probaron cinco bases de datos NoSQL (Redis, MongoDB, Couchbase, Cassandra, HBase) utilizando una

herramienta de medición: YCSB (Yahoo! Cloud Serving Benchmark).

Pereira et al. [6] probaron otro conjunto de bases de datos NoSQL (Couchbase, MongoDB y RethinkDB).

Probaron escenarios de un solo subproceso y de múltiples subprocesos. Los resultados muestran que Couchbase

tuvo un mejor desempeño en la mayoría de las operaciones, excepto en la recuperación


Machine Translated by Google

68 N. Zaniewicz, A. Salamończyk

múltiples documentos e insertar documentos con múltiples subprocesos, operaciones en las que MongoDB produce mejores

resultados.

Gupta et al., [7], seleccionaron una base de datos para diferentes tipos de datos, MongoDB (almacenamiento de

documentos), Cassandra (almacenamiento de columnas anchas), Redis (almacenamiento de valores clave) y Neo4j (bases de

datos de gráficos) y los compararon entre sí. Sus resultados muestran que las operaciones de escritura y eliminación son

rápidas para las bases de datos MongoDB, Redis y Cassandra, mientras que la operación de lectura es comparativamente lenta en
Casandra.

Se puede observar que las comparaciones y los estudios de rendimiento de diferentes kits son populares y vale la pena

realizarlos. El conjunto de bases probadas depende de la popularidad actual y la utilidad en aplicaciones específicas. Zaniewicz,

[8], comparó las bases de datos MongoDB, Neo4j y ArangoDB en su tesis de maestría y algunos de los resultados se presentan

más adelante en este artículo. Para las pruebas utilizó un generador de datos desarrollado por el autor.

Crear un conjunto de datos de prueba usando el generador de datos

Como datos de entrada se tomó el archivo "imdb­5000­movie­dataset.csv" de www.kaggle.com. Es un sitio de una

comunidad de científicos y personas que aprenden automáticamente que recopilan y comparten conjuntos de datos públicos. El

archivo antes mencionado contiene una colección de casi cinco mil películas, cada registro está descrito por 27 columnas que

contienen, entre otros datos, información como el nombre y apellido del director, título de la película, personalidad de los actores,

un enlace a una página en la base de datos de películas de IMDb, país de producción, presupuesto y muchos más.

El primer paso en el enfoque de diseño fue determinar en función de qué características se construirá cada base de datos

y qué datos darán resultados interesantes en el enfoque de gráficos y documentos. En la siguiente etapa de creación del

archivo, se adaptó el archivo a los requerimientos del programa, esto implica adoptar separadores adecuados y verificar que no

aparezcan en títulos de películas en inglés, porque algunos de ellos contienen punto y coma, dos puntos, puntos o apóstrofes.

Luego, cada registro se marcó con un número como identificador y, en los siguientes pasos, se redujeron los registros que

contenían valores en blanco para mantener la estabilidad de la solución implementada. Los datos de este formulario debían

guardarse en la memoria del programa para poder parametrizarlos a los efectos de las consultas que se realizaban, para evitar

el impacto de los mecanismos internos de Java en el tiempo de ejecución de la consulta.

De esta forma se obtuvo un conjunto de pruebas que se envió a consultas individuales y gracias al cual se crearon tres

bases de datos con enfoques muy diferentes, con más de tres mil registros.
Machine Translated by Google

Comparación de bases de datos MongoDB, Neo4j y ArangoDB utilizando el generador de datos desarrollado… 69

Resultados

La tarea difícil es elegir una característica que no favorezca una solución de base de datos específica. Cada uno de los sistemas

de bases de datos descritos en este documento fue creado para llenar el vacío de las necesidades de SBD con una especificación

específica. Para mantener resultados comparables, se probaron las características de tiempo básicas para todas las bases de datos,

como el tiempo de creación de la base de datos, el tiempo de ejecución de una consulta simple que busca un documento o nodo

gráfico, el tiempo de eliminación de un registro de la base de datos y el tiempo de actualización. el record.

El primer parámetro probado es el momento de crear la base de datos, teniendo en cuenta las bases de datos de documentos

utilizadas y la base de datos de gráficos, este es el momento en que se llena con el conjunto de datos de prueba y, en el caso de

Neo4j, también la creación del gráfico. borde, que es un elemento importante que genera una carga bastante grande. Otro parámetro

examinado es el tiempo de ejecución de una consulta simple seleccionando un registro por título de la película de cada una de las

bases de datos. Se probaron más a fondo el momento de eliminar un registro determinado y el momento de editarlo.

Todos estos parámetros también están presentes en las bases de datos relacionales tradicionales, lo que permite una

comprensión más accesible de los resultados obtenidos en función de las características y operaciones preferidas de soluciones

específicas. Todos los resultados estuvieron relacionados con información sobre las aplicaciones de cada una de las soluciones y

cómo puede afectar los resultados.

Todas las pruebas realizadas para obtener valores fiables se repitieron cien veces.

Con base en los resultados obtenidos se extrajeron las medias, valores máximos y mínimos. Todas las pruebas se realizaron en

servidores locales utilizando la misma especificación de computadora, es decir, Intel®

Procesador CoreTM i5­6500 con frecuencia de 3,2 GHz, 16 GB de RAM DDR4 a 2133 MHz y disco duro WD Blue de 2 TB a 5400

rpm. Las bases de datos también utilizaron la configuración predeterminada sugerida sin optimizarla para mejorar el rendimiento.

La recopilación de los resultados anteriores le permite crear una comparación que presentará los resultados obtenidos por las

bases de datos probadas. Hay que tener en cuenta que a pesar de las enormes diferencias entre ellos, tienen el mismo objetivo:

organizar y almacenar datos de forma organizada.

La primera prueba es agregar un nuevo nodo/documento a la base de datos, es decir, su unidad organizativa principal, los

resultados se muestran en la Tab. 1.

Tabla 1. Resumen de resultados de creación de nodos/gráficos en bases de datos. Fuente: [8]

Parámetro Neo4j MongoDB ArangoDB 0,75ms


Significar 0,88 ms 1,01ms <1ms <1ms
mín. <1 ms
máx. 3 ms 5 ms 6 ms
Machine Translated by Google

70 N. Zaniewicz, A. Salamończyk

Al analizar la pestaña. 1, se puede observar que todas las bases de datos, al crear sus propios tipos de unidades

organizativas, alcanzan tiempos bastante similares. Las diferencias en los tiempos medios son pequeñas, teniendo sólo

Neo4j una ligera ventaja en el tiempo máximo.

Pestaña. 2 muestra los resultados del tiempo de ejecución de la consulta eliminando el "registro" de las bases de

datos. Los resultados obtenidos en conjunto muestran que las soluciones individuales difieren significativamente de
entre sí.

Tabla 2. Resumen de los resultados de eliminar un nodo/documento de la base de datos. Fuente: [8]

Parámetro Neo4j MongoDB ArangoDB 2,3 ms


Significar 0,81ms 1,13 ms <1 ms <1 ms
mín. <1ms
máx. 2 ms 168 ms 6 ms

Los resultados de esta consulta son diferentes a los de crear nodo, aunque ambas operaciones pueden considerarse

básicas para cada base de datos. Los tiempos de eliminación de MongoDB difieren significativamente de los resultados

de agregarlo y de los resultados obtenidos por las soluciones de la competencia.

El tiempo máximo de eliminación en el caso de MongoDB se desvía significativamente del resto de resultados y

afecta fuertemente el promedio, sin embargo, esta muestra, que constituye el 1% de todos los resultados, puede

considerarse un error estadístico causado, por ejemplo, por una falla temporal. carga del conjunto de prueba o conexión

al servidor MongoDB.

Sin embargo, todos los valores obtenidos se pueden tomar en la categoría rápida. El promedio de MongoDB, sin

tener en cuenta los valores atípicos dados, es de aproximadamente 0,6 ms, lo que hace que la base de datos sea la más

rápida en términos de eliminación. La siguiente prueba consistió en buscar un nodo o documento en una determinada

solución de base de datos, Tab. 3 resume estos resultados.

Tabla 3. Resumen de resultados de búsqueda de nodos/documentos en bases de datos. Fuente: [8]

Parámetro Neo4j MongoDB ArangoDB 0,18


Significar 0,64 ms ms 5,07 ms <1 ms <4 ms
mín. <1 ms
máx. 12 ms 12 ms 8 ms

La búsqueda en bases de datos arrojó resultados bastante diversos, la base de documentos MongoDB fue la mejor

para esta tarea, la peor, lo que puede ser un resultado sorprendente, ArangoDB. La solución gráfica es bastante

competitiva en relación con MongoDB.

El alto resultado de ArangoDB se debe a los tiempos más bajos alcanzados, una parte importante de los cuales

alcanza alrededor de 4 ms, lo que es un resultado cuatro veces mayor que el de la competencia, pero mantiene un tiempo
máximo mucho menor.
Machine Translated by Google

Comparación de bases de datos MongoDB, Neo4j y ArangoDB utilizando el generador de datos desarrollado… 71

El último parámetro tomado en cuenta fue la creación de la base de datos junto con la población.
Esta elección se hizo debido al poco tiempo necesario para crear las estructuras básicas de la base de datos:
la creación de una base gráfica o una colección de documentos se mide en milisegundos y este proceso a
menudo se realiza solo una vez.

Por esta razón, los resultados de la creación en sí tendrían un impacto marginal en la eficiencia, sin
embargo, teniendo en cuenta llenar la base de manera adecuada según los patrones adoptados, podemos
simular un cambio, por ejemplo, de la solución basada en la empresa. . Pestaña. 4 resume los resultados de
todas las bases de datos y dos variantes de la base de datos Neo4j, el primer factor notable es el cambio de
la unidad a segundos (el resultado de MongoDB se ha formateado correctamente para facilitar la lectura).

Tabla 4. Resumen de los resultados de la creación y llenado de bases de datos. Fuente: [8]

Neo4j
Parámetro Neo4j sin aristas MongoDB ArangoDB
con bordes
244,22
Significar 682,80 s s 204 s 0,42 segundos 2,79 s
mín. 382 s 0,4 segundos 2s
máx. 837s 480s 1,07 segundos 7 segundos

Conclusiones

En este trabajo se realizó una comparación de las bases de datos Neo4j, MongoDB y ArangoDB utilizando
datos generados en un generador de datos preparado para tal fin. El artículo también presenta una breve
descripción de estas bases de datos.

Para evaluar la efectividad se utilizó un generador de datos desarrollado para el tema, el cual a partir de
un conjunto de datos sobre películas del sitio web IMDB contenidos en un archivo .csv, creó una estructura
adecuada para crear las bases de datos mencionadas. llenarlos y probar algunos aspectos del rendimiento
que ofrecen las bases de datos NoSQL, lo que permitió realizar una comparación de bases de datos. Al
analizar los resultados presentados en la sección Resultados, queda claro que las bases de gráficos fueron
las que se formaron por más tiempo. Este resultado no sorprende debido a la complejidad de los gráficos y la
cantidad de nodos que contienen. El más corto fue la implementación de bases de datos basadas en un
formato de documento desnormalizado, es decir, MongoDB y ArangoDB.

Observando los promedios de los resultados se puede decir que la solución más rápida es MongoDB,
excepto por una medida de eliminación, que definitivamente sobrestimó el promedio alcanzado por la base.
Considerando la versatilidad de ArangoDB (también combina un motor de gráficos), se puede concluir que es
una implementación muy competitiva de una solución documental con posibilidad de utilizar gráficos. Es
importante en el análisis de los resultados tener en cuenta
Machine Translated by Google

72 N. Zaniewicz, A. Salamończyk

Tenga en cuenta que el proceso de creación de la base de datos generalmente se lleva a cabo una vez, las iteraciones

posteriores implican modificación o extensión de la solución. Por lo tanto, a pesar del considerable tiempo de

desarrollo, las bases de datos de gráficos siguen siendo una solución de almacenamiento de datos competitiva y deseable.

Referencias

Barczak A., Zacharczuk D. y Korzeniecka A. (2019). La influencia de los métodos de indexación en el

funcionamiento eficaz de la base de datos. Estudios Informáticos. Sistemas y tecnología de la

información, 17 (1­2), 5–18.

Skaruz J. (2020). Seguridad de bases de datos: combinación de redes neuronales y enfoque de

clasificación. Estudios Informáticos. Sistemas y tecnología de la información, 23(1­2), 95–115. https://

doi.org/10.34739/si.2019.23.06

Li Y. y Manoharan S., "Una comparación de rendimiento de bases de datos SQL y NoSQL",

Conferencia IEEE Pacific Rim de 2013 sobre comunicaciones, computadoras y procesamiento de

señales (PACRIM), 2013, págs. 15­19, DOI: 10.1109/PACRIM.2013.6625441.

Martins P., Abbasi M., Sá F. "Un estudio sobre el rendimiento de NoSQL". En: Rocha Á., Adeli H., Reis L.,

Costanzo S. (eds) Nuevos conocimientos en sistemas y tecnologías de la información.

WorldCIST'19 2019. Avances en sistemas inteligentes y computación, vol 930. Springer, Cham. https://doi.org/

10.1007/978­3­030­16181­1_57

Tang E. y Fan Y., "Comparación de rendimiento entre cinco bases de datos NoSQL", Séptima Conferencia

Internacional sobre Computación en la Nube y Big Data (CCBD) de 2016, 2016, págs.

109, DOI: 10.1109/CCBD.2016.030.

Pereira DA, Ourique de Morais W. y Pignaton de Freitas E. Comparación del rendimiento de bases de

datos en tiempo real NoSQL, Revista Internacional de Sistemas Paralelos, Emergentes y Distribuidos,

33:2, 144­156, 2018, DOI: 10.1080/17445760.2017.1307367

Gupta A., Tyagi S., Panwar N., Sachdeva S. y Saxena U., "Bases de datos NoSQL: análisis crítico y

comparación", Conferencia internacional de 2017 sobre tecnologías de informática y

comunicación para una nación inteligente (IC3TSN), 2017, págs. 293 ­299, DOI: 10.1109/
IC3TSN.2017.8284494

Zaniewicz N., "Comparación de bases de datos MongoDB, Neo4j y ArangoDB utilizando el generador de datos

desarrollado para bases de datos NoSQL", Tesis de maestría, Universidad de Ciencias Naturales y

Humanidades de Siedlce, 2019, (en polaco)

También podría gustarte