Creación y Gestión de Bases de Datos de Grafos con Neo4j y Cypher
Clase 13 de 17 • Curso de Base de Datos NoSQL
Resumen
Implementar una base de datos basada en grafos puede parecer desafiante, pero con Neo4j y su servicio Aura, es más sencillo de lo que parece. Solo necesitas un correo electrónico para empezar y crear instancias gratuitas donde puedes almacenar hasta 200.000 nodos y 400.000 conexiones.
¿Cómo crear una instancia en Neo4j Aura?
Para comenzar, debes ingresar a la página de Neo4j y hacer clic en “Aura Login”. Una vez allí, crea una nueva instancia gratuita. Descarga las credenciales que se generan, ya que las necesitarás más adelante. Este proceso puede tardar unos minutos, pero una vez completado, tendrás tu instancia lista para usar.
¿Cómo acceder y utilizar tu instancia de Neo4j?
Con tu instancia creada, haz clic en “Open” e ingresa las credenciales descargadas. Este será tu entorno de trabajo. Para empezar a crear nodos, usa la palabra reservada create
seguida de paréntesis que contienen el identificador y el tipo de entidad del nodo.
¿Cómo crear tus primeros nodos?
Para crear un nodo, usa la siguiente sintaxis:
create (n:Person {name: "Alice", age: 24})
Este comando crea un nodo de tipo Person
con las propiedades name
y age
. Puedes crear varios nodos en una sola línea:
create (n:Person {name: "Alice", age: 24}), (m:Person {name: "Samantha", age: 30}), (o:Person {name: "Bob", age: 29})
¿Qué es el lenguaje Cypher?
Cypher es el lenguaje de consulta para Neo4j. Se parece a SQL pero está optimizado para trabajar con datos en forma de grafos. Si deseas profundizar en Cypher, revisa la documentación oficial para aprender a realizar operaciones más complejas.
¿Cómo agregar conexiones entre nodos?
Para agregar conexiones, usa match
para encontrar los nodos y create
para establecer las relaciones:
match (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
create (a)-[:FRIEND]->(b)
Este comando crea una relación de amistad entre Alice y Bob.
¿Cómo realizar consultas en tu base de datos de grafos?
Utiliza match
para buscar nodos y sus relaciones, y return
para especificar qué datos deseas obtener:
match (a:Person {name: "Alice"})-[:FRIEND]->(b)
return a.name, collect(b.name) as friends
Esta consulta devuelve el nombre de Alice y una lista de los nombres de sus amigos.
¿Por qué elegir una base de datos basada en grafos?
Las bases de datos de grafos permiten relaciones nativas entre nodos, lo que las hace más eficientes para ciertas consultas comparado con las bases de datos SQL tradicionales. Las operaciones complejas como los joins
en SQL pueden ser costosas y lentas a medida que aumentan los datos, mientras que en Neo4j, las conexiones y consultas son rápidas y directas.