Una graph database o base de datos orientada a grafos es un tipo especial de base de datos que almacena la in­fo­r­ma­ción en forma de nodos y aristas. Este enfoque permite modelar y consultar re­la­cio­nes complejas de manera eficiente. Por ello, las bases de datos orie­n­ta­das a grafos son es­pe­cia­l­me­n­te adecuadas para apli­ca­cio­nes que requieren re­pre­se­n­tar in­fo­r­ma­ción altamente in­te­r­co­ne­c­ta­da.

Qué es una graph database, de qué se compone y para qué se utiliza

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 re­pre­se­n­tar datos in­te­r­co­ne­c­ta­dos, así como las re­la­cio­nes entre ellos, de forma co­m­pre­n­si­ble, dentro de un único conjunto de datos.

Los grafos están formados por nodos o vértices, que re­pre­se­n­tan entidades u objetos bien definidos, y aristas o arcos, que re­pre­se­n­tan las re­la­cio­nes entre los objetos. Grá­fi­ca­me­n­te, estos dos co­m­po­ne­n­tes tienen forma de puntos y líneas, re­s­pe­c­ti­va­me­n­te. Las aristas tienen un extremo inicial y uno final, mientras que cada nodo siempre contiene un número concreto de re­la­cio­nes a otros nodos, ya sean de entrada o de salida.

Las graph databases o bases de datos orie­n­ta­das a grafos se utilizan, por ejemplo, para analizar las re­la­cio­nes entre usuarios en redes sociales o el co­m­po­r­ta­mie­n­to de compra en tiendas online. Al almacenar las re­la­cio­nes, es posible ofrecer de forma dirigida re­co­me­n­da­cio­nes de productos o de amistad, así como construir redes pe­r­so­na­li­za­das de personas y productos.

Nota

Las bases de datos re­la­cio­na­les almacenan la in­fo­r­ma­ción en tablas y utilizan SQL para las consultas. En cambio, una graph database o base de datos orientada a grafos forma parte de la familia NoSQL y ofrece una es­tru­c­tu­ra más flexible para gestionar de manera eficiente re­la­cio­nes complejas entre datos.

Ejemplos de graph databases

Existen distintos conceptos que describen la es­tru­c­tu­ra de este tipo de graph database. Los más conocidos son el Labeled Property Graph y el Resource De­s­cri­p­tion Framework (RDF).

Labeled Property Graph

En un Labeled Property Graph (LPG) se asignan a cada nodo y a cada arista del grafo de­te­r­mi­na­das pro­pie­da­des (pro­pe­r­ties) y etiquetas (labels). Estas almacenan in­fo­r­ma­ción es­pe­cí­fi­ca sobre las entidades o re­la­cio­nes. Las etiquetas sirven para la ca­te­go­ri­za­ción, de modo que, por ejemplo, un nodo puede estar marcado como “Persona” o “Empresa”, mientras que las pro­pie­da­des pueden incluir atributos adi­cio­na­les como nombre, edad o coor­de­na­das geo­grá­fi­cas.

Esta es­tru­c­tu­ra permite consultas muy flexibles y potentes, ya que tanto las re­la­cio­nes como las pro­pie­da­des se almacenan di­re­c­ta­me­n­te en la graph database y pueden re­cu­pe­rar­se mediante consultas sencillas. Los LPG son es­pe­cia­l­me­n­te adecuados para modelar redes complejas en las que las entidades y sus co­ne­xio­nes se describen en di­fe­re­n­tes contextos.

Resource De­s­cri­p­tion Framework

En el Resource De­s­cri­p­tion Framework (RDF) la in­fo­r­ma­ción se organiza en tríadas, formadas por sujeto, predicado y objeto. Esta es­tru­c­tu­ra ofrece un modo sencillo de re­pre­se­n­tar las re­la­cio­nes entre entidades. Cada triple co­n­s­ti­tu­ye una afi­r­ma­ción: el sujeto ide­n­ti­fi­ca el recurso, el predicado describe la propiedad o relación y el objeto indica el valor o bien otro recurso.

Con RDF los datos pueden vi­n­cu­lar­se de manera es­ta­n­da­ri­za­da, lo que permite co­m­bi­nar­los y co­n­su­l­tar­los en di­fe­re­n­tes sistemas. Esta fle­xi­bi­li­dad hace que RDF sea es­pe­cia­l­me­n­te útil en apli­ca­cio­nes que dependen de la in­te­r­co­ne­xión de datos de distintas fuentes, como los gráficos de co­no­ci­mie­n­to (knowledge graphs).

¿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, pri­n­ci­pa­l­me­n­te porque no hay un lenguaje de consulta uniforme. Y, al contrario de lo que ocurre en modelos tra­di­cio­na­les, las bases de datos orie­n­ta­das a grafos utilizan al­go­ri­t­mos es­pe­cia­les para poder realizar su principal tarea: si­m­pli­fi­car y acelerar las consultas complejas.

Entre los al­go­ri­t­mos más comunes se en­cue­n­tran la búsqueda en pro­fu­n­di­dad y la búsqueda en anchura. La búsqueda en pro­fu­n­di­dad busca el siguiente nodo más profundo, mientras que la búsqueda en anchura se mueve de un nivel a otro. Los al­go­ri­t­mos permiten encontrar patrones (patrones de grafos o graph patterns) y nodos re­la­cio­na­dos directa o in­di­re­c­ta­me­n­te. Otros al­go­ri­t­mos también se ocupan de calcular la ruta más corta entre dos nodos y de ide­n­ti­fi­car cliques (subgrafos co­m­ple­ta­me­n­te co­ne­c­ta­dos) y hotspots (nodos con alta co­ne­c­ti­vi­dad/ce­n­tra­li­dad). Uno de los puntos fuertes de las graph databases es que las re­la­cio­nes están guardadas en la propia base de datos, de manera que no son ca­l­cu­la­das a partir de cada solicitud de búsqueda. Gracias a ello, la base de datos opera a gran velocidad incluso en búsquedas co­m­pli­ca­das.

Las ventajas y de­s­ve­n­ta­jas de las graph databases

La potencia de una base de datos puede medirse pri­n­ci­pa­l­me­n­te según cuatro factores: in­te­gri­dad, re­n­di­mie­n­to, efi­cie­n­cia y es­ca­la­bi­li­dad. 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 re­la­cio­na­les, por ejemplo, tienen su punto débil, el modelo basado en grafos funciona de forma es­pe­cia­l­me­n­te rápida: la razón es que la co­m­ple­ji­dad y la cantidad de datos no pe­r­ju­di­can el proceso de búsqueda.

Con el modelo orientado a grafos, además, se pueden almacenar asuntos reales de forma natural, ya que la es­tru­c­tu­ra utilizada es muy similar al pe­n­sa­mie­n­to humano y hace que los enlaces sean muy in­tui­ti­vos. Sin embargo, las graph databases tampoco son una solución perfecta. Uno de sus puntos débiles es, por ejemplo, la es­ca­la­bi­li­dad: puesto que están diseñadas es­pe­cia­l­me­n­te para ar­qui­te­c­tu­ras de un solo servidor, el cre­ci­mie­n­to supone un desafío (ma­te­má­ti­co). Además, aún no existe ningún lenguaje de consulta co­n­si­s­te­n­te.

Resumen de las ventajas y de­s­ve­n­ta­jas de las bases de datos orie­n­ta­das a grafos:

Ventajas De­s­ve­n­ta­jas
La velocidad de búsqueda suele depender pri­n­ci­pa­l­me­n­te del número de re­la­cio­nes concretas, no del conjunto de datos Es difícil de escalar, por estar diseñado para ar­qui­te­c­tu­ras con un solo servidor
Re­su­l­ta­dos en tiempo real
Pre­se­n­ta­ción intuitiva y resumida de las re­la­cio­nes
Es­tru­c­tu­ras flexibles y ágiles

Las bases de datos orie­n­ta­das a grafos no deberían co­n­si­de­rar­se, por lo general, como mejores y absolutas su­s­ti­tu­tas de las bases de datos co­n­ve­n­cio­na­les. Las es­tru­c­tu­ras re­la­cio­na­les siguen siendo modelos estándar que ga­ra­n­ti­zan una gran es­ta­bi­li­dad e in­te­gri­dad de los datos, además de permitir un es­ca­la­mie­n­to flexible. Como en la mayoría de los casos, todo depende del uso que se les quiera dar.

Co­m­pa­ra­ti­va de graph databases

Existen di­fe­re­n­tes bases de datos orie­n­ta­das a grafos, cada una adecuada para distintos es­ce­na­rios de uso. A co­n­ti­nua­ción, se presentan cuatro de los modelos más populares:

  • Neo4j: Neo4j es la graph database más popular y está concebida como modelo de código abierto.
  • Amazon Neptune: esta base de datos orientada a grafos 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 re­n­di­mie­n­to.
  • SAP HANA Graph: SAP ha creado con SAP HANA una pla­ta­fo­r­ma basada en un sistema de gestión de bases de datos re­la­cio­nal que se completa con el modelo integrado SAP HANA Graph, orientado a grafos.
  • OrientDB: esta graph database combina enfoques do­cu­me­n­ta­les y basados en grafos y se considera uno de los modelos más rápidos di­s­po­ni­bles en la ac­tua­li­dad.

En una co­m­pa­ra­ción directa se observa que cada base de datos orientada a grafos ofrece distintas ca­ra­c­te­rí­s­ti­cas, que pueden resultar útiles según el caso de uso es­pe­cí­fi­co:

Base de datos orientada a grafos Neo4j Amazon Neptune SAP HANA Graph OrientDB
Tipo Nativa Ge­s­tio­na­da (nube) Extensión de grafos Multi-modelo
Lenguajes de consulta Cypher SPARQL, Gremlin, ope­n­C­y­pher Basado en SQL Similar a SQL, Gremlin
Modelo(s) de datos Property Graph Property Graph, RDF Re­la­cio­nal, modelo de grafos Grafos, do­cu­me­n­tos
Es­ce­na­rios de uso típicos Redes sociales, detección de fraude, sistemas de re­co­me­n­da­ción, gestión de redes Grafos de co­no­ci­mie­n­to (knowledge graphs), gestión de ide­n­ti­da­des y accesos, apli­ca­cio­nes nativas en la nube Análisis de negocio, IoT, análisis fi­na­n­cie­ro, apli­ca­cio­nes SAP Gestión de co­n­te­ni­dos, re­la­cio­nes de datos complejas, sistemas di­s­tri­bui­dos
Ir al menú principal