← Lumbre

Bases de Datos NoSQL · 6.º Bases de grafos (Neo4j)

← Volver a todos los contenidos
Portada de Bases de grafos (Neo4j)

Bases de grafos (Neo4j)

✦ Cuando el valor está en las relaciones y en saltar de una cosa a otra, un grafo gana a las uniones · Bases de Datos NoSQL · Bases de Datos · y te lleva 5 minutos

Roadwise Consulting

Firmado y verificado · Fernando Castro

Objetivo: 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.

5 min 18–30 años
Autoevaluación
Más
Bases de grafos (Neo4j)

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a Objetos Cursos Explorar Mi cuenta Salir del modo estudio

Bases de grafos

Neo4j: introducción a grafos y Cypher
Vídeo en español que presenta nodos, relaciones y el lenguaje de patrones Cypher.

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

  • Recomendaciones, redes sociales y detección de fraude por comunidades.
  • Grafos de conocimiento y linaje de datos entre sistemas.
  • Rutas e infraestructuras donde importa la conectividad más que el agregado.

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

  • Forzar un grafo para agregaciones masivas por columna, donde una columnar gana holgada.
  • Dejar nodos duplicados sin clave única, partiendo los recorridos en entidades fantasma.
  • Escribir patrones de saltos ilimitados que exploran medio grafo en cada consulta.

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

Toca una tarjeta para ver la respuesta.

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

Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.

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

                      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.

                      Tu texto se guarda sólo en este dispositivo.

                      Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.

                      Autoevaluación

                      Comprueba lo que aprendiste

                      2 preguntas · ves cada respuesta al momento · el resultado queda guardado en tu historial

                      Iniciar autoevaluación
                      Más sobre esta lección

                      Rutas vivas

                      ¿Y ahora qué? Elige el camino por lo que necesitas

                      No es un listado al azar: cada camino responde una pregunta distinta y te dice por qué.

                      Otra forma de comprenderlo

                      ✦ Explorar el universo completo
                      Explora temas relacionados

                      Conceptos

                      Comentarios

                      Inicia sesión para comentar.

                      Todavía no hay comentarios. Sé la primera persona en opinar.