Graph database

Ya hace mucho que los big data o macrodatos se han convertido en un sinónimo del avance de la digitalización en nuestra sociedad, pero su amplia disponibilidad también trae desafíos consigo: los conjuntos de datos que crecen a velocidad vertiginosa, duran poco y están pobremente estructurados requieren soluciones informáticas de alto rendimiento para poder analizarlos y utilizarlos de forma efectiva.

Un modelo de base de datos capaz de trabajar con datos altamente interconectadas es la llamada graph database o base de datos orientada a grafos. Este modelo resuelve el problema de las bases de datos convencionales de tipo relacional, que no logran procesar satisfactoriamente conjuntos de datos grandes y complejos. Con ello, este modelo se une al grupo de alternativas modernas a la base de datos tradicional y relacional conocidas bajo el nombre de NoSQL (Not only SQL). ¿Cómo funciona exactamente una base de datos orientada a grafos y qué ventajas ofrece su estructura?

¿Qué es una base de datos orientada a grafos?

Una base de datos orientada a grafos o graph database se basa, como bien dice su nombre, en grafos, un conjunto de objetos (vértices y aristas) que permite representar datos interconectados, así como las relaciones entre ellas, de forma comprensible y como un único y más amplio conjunto de datos. Los grafos están formados por nodos o vértices, que son propiedades de datos u objetos claramente señalizadas e identificables, y aristas o arcos, que representan las relaciones entre los objetos. Gráficamente, estos dos componentes tienen forma de puntos y líneas, respectivamente. Las aristas tienen un extremo inicial y uno final, mientras que cada nodo siempre contiene un número concreto de relaciones a otros nodos, ya sean de entrada o de salida.

Dos conceptos habituales en cuanto a la estructura de una graph database son el Labeled-Property Graph (grafo de propiedades etiquetadas) y Resource Description Framework (marco de descripción de recursos, RDF). En el primero, se asignan propiedades (properties) concretas tanto a los nodos como a las aristas; en el segundo, en cambio, la estructura del grafo se regula mediante tripels y quads: los tripels se componen de tres elementos, siguiendo el esquema nodo-borde-nodo. Los quads complementan a los tripels con información de contexto adicional, facilitando así su separación en grupos.

¿Cómo funcionan las búsquedas en una graph database?

Cuando se usa una base de datos de grafos, existen muchas maneras de realizar una consulta, principalmente porque no hay un lenguaje de consulta uniforme. Y, al contrario de lo que ocurre en modelos tradicionales, las bases de datos orientadas a grafos utilizan algoritmos especiales para poder realizar su principal tarea: simplificar y acelerar las consultas complejas.

Entre los algoritmos más se encuentran la búsqueda en profundidad y la búsqueda en anchura. La búsqueda en profundidad busca el siguiente nodo más profundo, mientras que la búsqueda en anchura se mueve de un nivel a otro. Los algoritmos permiten encontrar patrones (los llamados graph patterns) y nodos relacionados directa o indirectamente. Otros algoritmos también se ocupan de calcular la ruta más corta entre dos nodos y de identificar cliques (subconjuntos de nodos) y hotspots (datos altamente interconectados). Uno de los puntos fuertes de las graph databases es que las relaciones están guardadas en la propia base de datos, de manera que no son calculadas a partir de cada solicitud de búsqueda. Gracias a ello, la base de datos opera a gran velocidad incluso en búsquedas complicadas.

Distinción respecto a las bases de datos relacionales y a otras bases NoSQL

Las bases de datos relacionales han sido las bases de datos estándar desde su nacimiento en 1970. A diferencia de las de grafos, las bases de datos relacionales se basan en tablas que gestionan las relaciones de los registros de datos (llamados tuplas) en cada línea. Las columnas, por su parte, contienen propiedades con diferentes valores de atributo. Además de por su estructura, las bases de datos relacionales también se diferencian esencialmente de las de grafos por su modo de funcionamiento. Para poder presentar y guardar las relaciones entre datos con interconexiones complejas, es necesario hacer cálculos con varias tablas superpuestas, lo cual suele suponer mucho tiempo y esfuerzo si se trata de un conjunto grande.

Mientras que las bases de datos basadas en tablas solo usan el lenguaje de consulta SQL (Structured Query Language), las bases de datos modernas del tipo NoSQL cada vez se alejan más de este lenguaje y del concepto relacional que va unido a él. En este enfoque también se incluyen las bases de datos de grafos como parte de la familia NoSQL. Además de las graph databases, muchos otros modelos también pertenecen a este grupo: las bases de datos key-value, las bases de datos orientadas a columnas y las bases de datos orientadas a documentos, por ejemplo. Se trata de repositorios de datos que gestionan y almacenan sobre todo conjuntos de datos estructurados, si bien menos interconectados.

¿Para qué se usan las bases de datos orientadas a grafos?

Las bases de datos de grafos pueden usarse en contextos variados y con fines muy distintos, ya que permiten analizar información y entender, evaluar y aprovechar los procesos y las relaciones.

Un ejemplo típico del uso de bases de datos de grafos es el análisis de las relaciones entre los usuarios de las redes sociales o de los hábitos de compra de los clientes en tiendas online. Gracias a los diferentes datos y a las relaciones entre ellos se pueden realizar, por ejemplo, recomendaciones personalizadas de compra o de amistades, creando así redes de usuarios y de productos. Las empresas pueden aprovechar, además, la posibilidad de obtener información acerca de las búsquedas, del historial de clics y de otros comportamientos del usuario y crear con ella perfiles completos de clientes. En la gestión de la cadena de suministro se usan bases de datos de grafos para monitorizar todos los procesos, desde el diseño hasta las ventas. Otro uso importante de las bases de datos orientadas a grafos son los análisis de riesgo, la detección de fraudes y la búsqueda de errores.

Las ventajas y desventajas de las graph databases

La potencia de una base de datos puede medirse principalmente según cuatro factores: integridad, rendimiento, eficiencia y escalabilidad. Se podría decir que el objetivo esencial de las bases de datos de grafos es hacer que las búsquedas sean más sencillas y rápidas. En los aspectos en los que las bases de datos relacionales, por ejemplo, tienen su punto débil, el modelo basado en grafos funciona de forma especialmente rápida: la razón es que la complejidad y la cantidad de datos no perjudican el proceso de búsqueda.

Con el modelo orientado a grafos, además, se pueden almacenar asuntos reales de forma natural, ya que la estructura utilizada es muy similar al pensamiento humano y hace que los enlaces sean muy intuitivos. Sin embargo, las graph databases tampoco son una solución perfecta. Uno de sus puntos débiles es, por ejemplo, la escalabilidad: puesto que están diseñadas especialmente para arquitecturas de un solo servidor, el crecimiento supone un desafío (matemático). Además, aún no existe ningún lenguaje de consulta consistente.

Resumen de las ventajas y desventajas de las bases de datos orientadas a grafos:

Ventajas Desventajas
La velocidad de búsqueda depende únicamente del número de relaciones concretas, no del conjunto de datos Es difícil de escalar, por estar diseñado para arquitecturas con un solo servidor
Resultados en tiempo real Sin lenguaje de consulta consistente
Presentación intuitiva y resumida de las relaciones  
Estructuras flexibles y ágiles  

Las bases de datos orientadas a grafos no deberían considerarse, por lo general, como mejores y absolutas sustitutas de las bases de datos convencionales. Las estructuras relacionales siguen siendo modelos estándar que garantizan una gran estabilidad e integridad de los datos, además de permitir un escalamiento flexible. Como en la mayoría de los casos, todo depende del uso que se les quiera dar.

Las bases de datos orientadas a grafos más conocidas

  • Neo4j: Neo4j es la graph database más popular y está concebida como modelo de código abierto.
  • Amazon Neptun: esta base de datos de gráficos puede usarse a través de la nube pública de Amazon Web Services y se abrió al público en 2018 como base de datos de alto rendimiento.
  • SAP Hana Graph: SAP ha creado con SAP Hana una plataforma basada en un sistema de gestión de bases de datos relacional que se completa con el modelo integrado SAP Hana Graph, orientado a grafos.
  • OrientDB: esta graph database está considerada como uno de los modelos más rápidos disponibles actualmente.
¿Le ha resultado útil este artículo?
Page top