Bases de Datos NoSQL · Bases de Datos

Bases de grafos (Neo4j)

Modelar entidades como nodos y relaciones tipadas, y consultar recorridos con Cypher para responder preguntas sobre conexiones que a un relacional le costarían uniones encadenadas.

Bases de grafos

Las relaciones importan de verdad En un relacional, las relaciones son tablas puente y columnas clave; en un grafo son ciudadanas de primera clase, con tipo y propiedades propias. Cuando la pregunta es «¿quién conecta con quién y cómo?», el grafo responde sin una cascada de uniones.

Nodos y aristas

Los nodos representan entidades con etiquetas y propiedades; las aristas los unen con un tipo, una dirección y también propiedades. Esa pareja, más el grafo resultante, es todo el modelo, y se lee casi como un diagrama.

Almacenaje indexado

Cada nodo apunta directamente a sus aristas, así seguir una relación cuesta independiente del tamaño total del grafo: es la vecindad, no un barrido. Por eso los recorridos profundos son baratos donde un relacional se ahoga en uniones.

Una red de nodos teal unidos por flechas coral, con comunidades densas y un camino de tres nodos resaltado en verde brillante.
En un grafo las relaciones se recorren de vecino en vecino: el camino resaltado salta de nodo en nodo sin tocar el resto de la red, barato aunque el grafo crezca.

Cypher

El lenguaje declarativo describe patrones con paréntesis para nodos y corchetes con flechas para aristas, y coincide con el dibujo mental. MATCH encuentra patrones, WHERE filtra, RETURN proyecta y CREATE o MERGE escriben.

Recorridos y patrones

Se pueden fijar saltos de longitud variable, contar grados y detectar caminos entre dos puntos. Amistad mutua, cadenas de recomendación o grados de separación salen de una sola cláusula de patrón.

Cuándo brillan

Cuándo no forzarlos

Si tu carga es agregar millones de filas por columna o mantener contadores simples, un grafo es demasiada estructura. Se elige por la naturaleza relacional de las preguntas, no por moda.

Propiedades y claves

Aunque el fuerte son las aristas, los nodos llevan propiedades que convienen filtrar con índices. Identificar entidades con una clave única evita duplicados que romperían los recorridos.

Errores frecuentes

Ejemplo resuelto: amigos de amigos que no se conocen

Una red social quiere sugerir contactos a partir de cadenas de amistad. La construcción:

  1. Modelar personas como nodos y la amistad como arista tipada con su fecha como propiedad.
  2. Dar a cada persona una clave única para que no nazcan duplicados que rompan los saltos.
  3. Escribir el patrón de dos saltos desde la persona, filtrando a quien ya se conoce.
  4. Limitar y ordenar las sugerencias por número de caminos compartidos.
  5. Indexar la propiedad de búsqueda para entrar al patrón sin escanear todos los nodos.

¿Para qué sirve en la realidad?

Recomendaciones, lucha contra el fraude por comunidades compartidas, grafos de conocimiento y linaje de datos: donde la pregunta es de conectividad y saltos profundos, el grafo responde en milisegundos lo que al relacional le cuesta una cascada de uniones.

Quieres hallar en una red social los amigos de segundo grado de una persona que aún no la conoce. La ventaja de una base de grafos aquí es que:

En Cypher, las aristas pueden tener tipo y sus propias propiedades, igual que los nodos.

Grafos

Elemento que representa una entidad
nodo
Conexión tipada entre dos nodos
arista
Lenguaje de patrones de Neo4j
cypher
Cláusula que escribe o actualiza un patrón
merge
Saltar amigos de amigos aprovecha la...
adyacencia

Ordena los pasos para modelar y consultar una red de recomendación:

Entidades
Relaciones
Patrón
Recorrido

Manual de Cypher
Referencia oficial de la sintaxis de patrones, cláusulas y recorridos de Neo4j.

Une cada elemento o cláusula de Neo4j con su papel.

Las relaciones importan de verdad

# Bases de grafos
## Modelo
### nodos y aristas
### propiedades en ambos
## Almacén
### adyacencia indexada
### saltos baratos
## Cypher
### patrones visuales
### match y merge
## Encaje
### fraude y redes
### no agregaciones masivas

Fundamentos de Cypher
Curso gratuito oficial con patrones de consulta y recorridos paso a paso.

En detección de fraude, una cuenta compartida entre varias tarjetas delata una red. ¿Modelas con grafos o con tablas de relación en relacional? Argumenta por profundidad de recorrido.