43. Grafos en bases de datos

Una base de datos de grafos almacena entidades y relaciones como elementos de primera clase. Las consultas expresan patrones y recorridos sin reconstruir cada conexión mediante largas cadenas de uniones.

43.1 Introducción

Cuando las relaciones son tan importantes como los datos, el modelo de grafos ofrece una representación directa. Personas, productos, cuentas o lugares se convierten en nodos; sus vínculos se convierten en relaciones.

El objetivo no es reemplazar automáticamente una base relacional, sino elegir una estructura adecuada para consultas conectadas.

43.2 Modelo de grafo de propiedades

El modelo property graph contiene nodos y relaciones dirigidas. Ambos pueden poseer propiedades clave–valor.

nodo: entidad + etiquetas + propiedades
relación: tipo + dirección + propiedades

Una relación siempre conecta dos nodos y su dirección expresa el significado del dominio.

43.3 Nodos y etiquetas

Un nodo representa una entidad y puede tener etiquetas como Persona, Producto o Empresa.

{
  etiquetas: ["Persona"],
  propiedades: { id: 17, nombre: "Ana", ciudad: "Córdoba" }
}

Las etiquetas ayudan a clasificar, consultar e indexar nodos.

43.4 Relaciones tipadas

El tipo de relación forma parte de la estructura: CONOCE, TRABAJA_EN, COMPRÓ o PERTENECE_A.

(Ana)-[:TRABAJA_EN {desde: 2023}]->(Acme)

Las propiedades de la relación describen el vínculo, no a ninguno de sus extremos.

43.5 Dirección semántica

Las relaciones se almacenan con dirección, aunque una consulta puede recorrerlas en ambos sentidos.

A SIGUE_A B no equivale a B SIGUE_A A. Una relación conceptualmente simétrica como amistad puede modelarse con una sola arista y consultarse sin dirección.

43.6 Laboratorio de consultas por patrones

Ejecuta consultas sobre el grafo. Los elementos devueltos se iluminan y el panel muestra una expresión equivalente en Cypher.

Consulta

MATCH (n) RETURN n

Resultados

Explicación

La consulta inicial devuelve todos los nodos.
8 nodos visibles.
Nodos examinados8
Relaciones recorridas10
Resultados8
Tipo de recorridoTodos

43.7 Consultas por patrones

Una consulta describe la forma que deben tener los datos. Las variables representan nodos y relaciones que satisfacen el patrón.

MATCH (p:Persona)-[:TRABAJA_EN]->(e:Empresa)
WHERE e.nombre = "Acme"
RETURN p.nombre

El patrón se parece al diagrama que queremos encontrar.

43.8 Recorridos de longitud variable

Los cuantificadores permiten buscar cadenas con varias relaciones.

MATCH (ana:Persona {nombre: "Ana"})
      -[:CONOCE*1..3]->(contacto:Persona)
RETURN DISTINCT contacto

Debe limitarse la longitud cuando el dominio lo permita, porque el número de caminos puede crecer muy rápido.

43.9 Caminos más cortos

Muchas bases de grafos ofrecen funciones o procedimientos para caminos mínimos. La consulta debe definir tipos, dirección y costos pertinentes.

Un camino con menos saltos no necesariamente minimiza distancia, tiempo o riesgo si las relaciones tienen pesos.

43.10 Comparación con bases relacionales

AspectoRelacionalGrafo
EntidadesFilasNodos
RelacionesClaves y tablas intermediasRelaciones explícitas
Consulta conectadaJOIN sucesivosRecorrido de patrones
Fortaleza habitualAgregaciones tabularesRelaciones de profundidad variable

Ambos modelos pueden complementarse dentro de una arquitectura.

43.11 Modelado desde las consultas

Un buen modelo comienza con las preguntas frecuentes. Una entidad puede representarse como nodo o como propiedad según cómo necesitemos conectarla y consultarla.

Si algo necesita identidad, relaciones propias o recorridos, probablemente convenga modelarlo como nodo.

43.12 Índices

Los índices ayudan a localizar rápidamente los nodos iniciales mediante propiedades como identificador, correo o código.

Después de encontrar el punto de entrada, el motor recorre relaciones. Un índice no sustituye un buen patrón ni acelera automáticamente una expansión combinatoria.

43.13 Restricciones

Las restricciones protegen reglas como unicidad y existencia de propiedades. Por ejemplo, cada Persona puede requerir un identificador único.

La estructura flexible no significa ausencia de esquema: el esquema puede emerger de etiquetas, tipos, restricciones y convenciones.

43.14 Transacciones

Las actualizaciones relacionadas deben ejecutarse atómicamente. Crear una compra puede implicar un nodo, varias relaciones y modificaciones de inventario.

Las garantías transaccionales dependen del producto, pero la aplicación debe definir con claridad los límites de consistencia.

43.15 Planes de ejecución

El plan muestra cómo se localizan nodos, se expanden relaciones, se filtran resultados y se realizan agregaciones.

Una consulta lenta puede empezar desde demasiados nodos, recorrer tipos irrelevantes o construir todos los caminos cuando solo necesita verificar existencia.

43.16 Supernodos

Un supernodo tiene una cantidad extraordinaria de relaciones. Expandir todas puede dominar el costo de una consulta.

Conviene filtrar por tipo, dirección, fecha u otras propiedades; en algunos dominios también se crean nodos intermedios para particionar relaciones.

43.17 Property graph y RDF

RDF representa hechos como triples sujeto–predicado–objeto y favorece interoperabilidad semántica. El grafo de propiedades asigna propiedades directamente a nodos y relaciones.

No son intercambiables en todos los detalles. La elección depende del modelo, las consultas y los estándares necesarios.

43.18 Aplicaciones

  • Redes sociales y recomendaciones.
  • Detección de fraude mediante cadenas de transacciones.
  • Gestión de identidades y permisos.
  • Grafos de conocimiento.
  • Dependencias de software e infraestructura.
  • Rutas, logística y análisis de impacto.

43.19 Errores comunes y puntos clave

  • Copiar un esquema relacional sin reconsiderar relaciones.
  • Crear un tipo de relación genérico para todo.
  • Omitir límites en recorridos de longitud variable.
  • Concatenar entradas del usuario dentro de la consulta.
  • Suponer que todo problema conectado exige una base de grafos.
  • Los índices localizan puntos de inicio; las relaciones guían recorridos.
  • Dirección, tipos y propiedades forman parte del modelo.

43.20 Conclusión

Las bases de datos de grafos acercan la representación almacenada a las relaciones del dominio. Su ventaja aparece cuando las consultas recorren conexiones variables y los vínculos necesitan identidad propia.

En el próximo tema estudiaremos grafos en motores de búsqueda, desde enlaces entre páginas hasta índices invertidos y ranking.