Saltar al contenido

Las bases de datos orientadas a grafos o BDOG representan la información en vértices y aristas cumpliendo con la disciplina matemática de la Teoría de Grafos. Sin embargo, no necesitamos ser expertos en matemáticas para poder usarlas.

Las BDOG usan grafos para representar interacciones complejas entre datos. Cada grafo estará compuesto por dos elementos: los nodos (vértices) y las relaciones (aristas). Un nodo representa una entidad, donde almacenamos piezas de datos o atributos de tipo clave-valor, mientras que las relaciones representan cómo se conectan y se asocian dos nodos.


¿Cuál es su utilidad?

Son las más recomendables cuando tenemos datos altamente interconectados y necesitamos recorrer relaciones de referencias. En general son ideales para trabajar con datos altamente interconectados

Algunas situaciones en las que hay datos altamente interconectados son:

  • Relaciones sociales

  • Recursos humanos

  • Policía

  • Redes de sistemas

  • Detección del fraude

  • Estructuras organizativas de empresas

  • Cálculo de rutas en logística


¿Qué ventajas aportan?


Rendimiento

Tienen alto rendimiento en la búsqueda de resultados y sobre todo en la búsqueda de caminos.
Uno de los puntos fuertes de las graph databases es que las relaciones están guardadas en la propia base de datos, por lo 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.

Por el contrario, las Bases de Datos relacionales, para poder presentar y obtener las relaciones entre datos con interconexiones complejas necesitan hacer cálculos con varias tablas superpuestas, lo cual supone mucho tiempo y esfuerzo si se trata de un conjunto grande.

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.  Algunas son capaces de aplicar el algoritmo del camino más corto.
 

Flexibilidad

Las BDOG están creadas para aquellos ámbitos en donde es importante mantener un modelo extenso y amplio de la relación de la información y a la vez un esquema flexible de los datos.
 
Se diferencian de otras bases de datos como las relacionales, en:
 

  • Las relaciones son dinámicas y se crean por nodo. En un modelo relacional las relaciones están insertas en el modelo de datos.

  • Carecen de un esquema fijo, podemos tener nodos con diferente número de atributos. Esto permite una gran flexibilidad similar a las de un documento “valor-clave”. Aunque admiten las relaciones que se generan en el modelo relacional.

  • No hay que definir un número determinado de atributos (una persona puede tener relacionados cuatro nombres mientras que otra solamente dos, sin desperdiciar espacio).

  • Son multidimensionales, pueden almacenar atributos de diverso tamaño en los nodos.

  • Los registros también son de longitud variable, evitando tener que definir un tamaño y también posibles fallas en la base de datos.

  • Las relaciones pueden almacenar atributos.

  • Las relaciones pueden ser sin dirección, unidireccionales y bidireccionales, lo que puede convertir la representación a grafos dirigidos, muy útiles en el cálculo de caminos.

  • Permite realizar consultas más amplias y no demarcadas por tablas (ejemplo: “Muestre todas las tablas que posean un nombre Juan”).

  • Se pueden recorrer de forma jerárquica, obtener el nodo abuelo del nodo dado y viceversa.

Frente a bases de datos documentales rápidamente nos daremos cuenta de que las BBDD NoSQL Documentales no son buenas en mantener las relaciones de información entre los documentos.


Visibilidad

Con un modelo basado en grafos, nos facilita el trabajo pudiendo seguir la pista, sobre todo si hay una representación visual de los datos, ejecutando consultas y búsquedas de los elementos y estableciendo las relaciones.


Ejemplos de BDOG

Algunas que podemos encontrar en el mercado, son Neo4J, OrientDB y Oracle Spatial & Graph (no es propiamente una Base de Datos de Grafos sino un componente gratuito de Oracle que permite suministrar las mismas capacidades analíticas).  


Experiencia de BABEL

BABEL participa en un proyecto cuyo objetivo es construir un mapa gráfico utilizando Oracle Spatial & Graph que contendrá todas las relaciones entre aplicaciones y servicios existentes con las diferentes tecnologías: Natural, Java, .Net…

Con el mapa de relaciones deberíamos poder obtener información de las dependencias y relaciones existentes entre aplicaciones, como por ejemplo el cálculo del impacto de un cambio en una aplicación sobre otras aplicaciones desplegadas en el mismo entorno.

Dicho proceso de obtención y validación de relaciones se integrará como un subproyecto del proyecto de nuevo ciclo de vida DevOps.

Descripción imagen
Jesús Manuel Gómez Perfil en Linkedin

Apasionado de la ciencia y la tecnología, estudie física teórica y los últimos 25 años los he dedicado al mundo de la informática. Tengo experiencia en sistemas y calidad del software, pero lo que me encanta realmente es el diseño y desarrollo de aplicaciones. Actualmente llevo el mantenimiento, diseño y desarrollo de dos proyectos para la gestión del ciclo de vida de las aplicaciones de la seguridad social.

Mas post de Jesús Manuel Gómez