Comprensión de las bases de datos de gráficos de Neo4j: propósito y funcionalidad

Comprensión de las bases de datos de gráficos de Neo4j: propósito y funcionalidad

Nodo de origen: 1917266

Introducción

¿Qué tipo de base de datos utilizó para crear su aplicación más reciente? Según el informe de tendencias de bases de datos de 2019 de Scalegrid, SQL es el formulario de base de datos más popular, con más de 60% de su uso. es seguido por náufragos con más de 39% utilizar. MySQL es el más común base de datos SQL, mientras MongoDB es la base de datos NoSQL más utilizada. Sin embargo, existe otra forma de base de datos que se está volviendo cada vez más popular y son las bases de datos de gráficos. ¿Sabes qué potencia la búsqueda en tiempo real en Facebook y Google? Bases de datos impulsar su motor de búsqueda, que proporciona una búsqueda relevante, incluidos los resultados que quizás no haya solicitado específicamente pero que aún son relevantes.

OBJETIVOS DE APRENDIZAJE

El objetivo de aprendizaje de este artículo es explorar las bases de datos de grafos y cuál es su propósito. Pasaremos por Neo4j, que proporciona una arquitectura para crear una base de datos de gráficos. Junto con la creación de los elementos básicos de una base de datos de gráficos, también exploraremos algunas funcionalidades de Neo4j.

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Índice del contenido

  1. ¿Qué es un gráfico?
  2. ¿Qué es Neo4j y su propósito?
  3. Primeros pasos con Neo4j
  4. Creando una base de datos Graph usando Neo4j
    4.1 Creando nodos en nuestra base de datos de grafos
    4.2 Creando relaciones en nuestra base de datos de grafos
  5. Conclusión

¿Qué es un gráfico?

Un gráfico en una base de datos de gráficos representa una colección de nodos y las relaciones entre estos nodos. Un nodo puede considerarse un objeto en el mundo real. Por ejemplo, una persona, un país, un libro o el título de una película pueden considerarse un nodo. Estos nodos están conectados con uno o (generalmente) más de un nodo a través de ciertas relaciones. Consideremos la siguiente imagen, donde tenemos un nodo de muestra y un gráfico de relaciones.

gráfica

Los círculos representan los nodos, y la vinculación entre ellos a través de flechas representa su relación. Tenga en cuenta que estas flechas representan una dirección. Solo hemos incluido enlaces unidireccionales en nuestro caso, mientras que los enlaces bidireccionales o auto-enlazados también son posibles en las bases de datos de grafos. La persona (Sr. Narendra Modi), la bandera india (que representa a la India), el político y el primer ministro son nodos. Hay un total de 5 enlaces o relaciones presentes entre estos nodos. A continuación se muestran los nodos y las relaciones que se pueden extraer del gráfico.

  • El Sr. Narendra Modi vive en India.
  • El Sr. Narendra Modi es Primer Ministro.
  • Primer Ministro de la India.
  • Un político puede ser un Primer Ministro.
  • El Sr. Narendra Modi trabaja como político.

¿Qué es Neo4j y su propósito?

Neo4j es un sistema de gestión de base de datos de gráficos que se utiliza para crear una base de datos de gráficos nativos que almacena y gestiona relaciones de datos y tiene la capacidad de ofrecer consultas ultrarrápidas. La edición comunitaria de Neo4j es una herramienta de código abierto bajo una licencia GPLv3. Ayuda a construir los nodos y las relaciones que vemos en las bases de datos de gráficos, junto con características adicionales como definir etiquetas y propiedades de nodos.

  • Etiquetas de nodos – Los nodos pueden tener etiquetas, lo que nos permite agrupar nodos bajo la misma categoría. Por ejemplo, en el ejemplo anterior, podemos darle al Sr. Narendra Modi la etiqueta de ser una 'Persona' oa la bandera india la etiqueta de ser un 'País'. Estas etiquetas nos facilitan la búsqueda de un objeto específico a través de consultas.
  • Propiedades del nodo – Las propiedades son pares clave-valor que se pueden asignar a un nodo o una relación. En nuestro ejemplo, podemos agregar una propiedad con la clave 'edad' y el valor '70' para el nodo Sr. Narendra Modi. Para el nodo India, podemos tener propiedades de India, como población, PIB, etc., como pares clave-valor.

Lea más sobre Neo4j aquí:

Una guía completa sobre Neo4j

Primeros pasos con Neo4j

Ahora, tenemos una comprensión justa de las bases de datos de gráficos, los nodos, las relaciones y las características de Neo4j, así que profundicemos un poco más y aprendamos cómo crear una base de datos de gráficos básica usando Neo4j. Primero, debe instalar Neo4j Desktop community o edición empresarial desde este enlace. Puede obtener una licencia de desarrollador gratis con la edición empresarial. Después de descargar la aplicación, siga los pasos a continuación para crear un nuevo proyecto y asignarle una base de datos para trabajar.

Pasos Neo4j

Neo4j – Pasos

Paso 1: Crea un nuevo proyecto.

Paso 2: Cree una nueva base de datos dentro del proyecto.

Paso 3: Proporcione el nombre de la base de datos y la contraseña y haga clic en Crear.

Paso 4: Inicie la base de datos.

Después de realizar estos pasos, puede ver una barra de consola donde puede comenzar a escribir sus consultas gráficas de Neo4j.

Crear una base de datos de gráficos usando Neo4j

Podemos comenzar a trabajar en nuestra base de datos escribiendo consultas para crear el nodo y las relaciones.

Crear nodos en nuestra base de datos de gráficos

El comando 'CREATE' crea un nodo en nuestra base de datos de gráficos. El nodo más básico es el que no tiene etiquetas ni propiedades, lo que significa que es un nodo en blanco o vacío. Sin embargo, este nodo tendrá un ID que es un valor entero. Este ID se proporciona de forma predeterminada para cada nodo creado y es único. Podemos crear un nodo vacío usando la consulta:

CREAR ()

Para crear un nodo con una etiqueta, podemos proporcionarla usando dos puntos seguidos del nombre de la etiqueta. Para crear un nodo con la etiqueta 'Político', podemos usar la consulta:

CREAR (:Político)

También podemos proporcionar más de una etiqueta a un nodo. Para proporcionar más de una etiqueta, podemos seguir el mismo patrón y continuar escribiendo dos puntos seguidos del nombre de la etiqueta. Para crear un nodo con la etiqueta 'País', 'Asia' e 'India', podemos usar la consulta:

CREAR (:País:Asia:India)

Como se discutió, un nodo puede tener una o más propiedades y etiquetas. Estas propiedades se pueden proporcionar como pares clave-valor entre llaves como {clave: valor}. Vamos a crear un nodo etiquetado como 'Persona' y propiedades como 'Sr. Narendra Modi' para clave 'nombre', 70 para clave 'edad'.

CREAR (:Persona{nombre: 'Sr. Narendra Modi', edad: 70})

Una vez que haya ejecutado con éxito las consultas anteriores, puede ver sus nodos usando la consulta:

MATCH (nodo) RETURN (nodo)

La siguiente imagen es el resultado de la consulta donde tiene 4 nodos. Puede ver la etiqueta y las propiedades de un nodo específico pasando el cursor sobre él. En la imagen podemos ver la etiqueta 'Persona' y las propiedades 'nombre' y 'edad' del nodo ID 3.

neo4j

Salida de Neo4j: creación de nodos

Crear relaciones en nuestra base de datos de gráficos

Esta sección mostrará cómo crear relaciones entre los nodos. Aquí hay un consejo rápido para borrar todos los nodos y relaciones existentes en una base de datos; podemos usar la consulta:

COINCIDIR (n) SEPARAR ELIMINAR (n)

Para empezar, primero veamos cómo podemos crear un autoenlace en un nodo que representa una relación de nodo. Crearemos un nodo 'Persona' y agregaremos una relación de amor con el mismo nodo, presentando el amor propio de una persona.

CREATE(p:Persona{nombre: 'Ram'})-[:ama]->(p)

Echemos un vistazo rápido a esta consulta. La 'p' actúa como un nombre de variable de referencia para la consulta. Tenga en cuenta que podemos agregar esta variable de referencia al crear nodos, como se presentó en la sección anterior. La etiqueta proporcionada a este nodo es 'Persona' y una propiedad de 'nombre' con un valor como 'Ram'. El contenido dentro de los corchetes representa el tipo de relación que estamos tratando de definir. La flecha representa el flujo direccional de esta relación. El nombre de la variable de referencia ayuda a asignar esta relación donde se menciona al final de la consulta.

También podemos proporcionar propiedades a una relación determinada. Considere el nodo anterior donde queremos agregar una propiedad con la clave 'since' y el valor 'always'.

CREATE(p:Persona{nombre: 'Ram'})-[:ama{desde: 'siempre'}]->(p)

Para definir la relación entre dos nodos diferentes, podemos crear ambos nodos y luego definir la relación usando las variables de referencia. Creemos una relación entre la India y su Primer Ministro. Tenga en cuenta que podemos escribir múltiples consultas simultáneamente usando shift enter en la consola.

CREAR (p1:Persona{nombre: 'Sr. Narendra Modi'}) CREAR (c1:País{nombre: 'India'}) CREAR (p1)-[r1:primer_ministro]->(c1)

Después de ejecutar con éxito todas las consultas mencionadas en esta sección, podemos ver el siguiente resultado usando el comando:

MATCH (nodo) RETURN (nodo)
neo4j

Salida de Neo4j: creación de relaciones

Conclusión

Según Neo4j, una consulta que consiste en una búsqueda de profundidad 6 en una base de datos con un millón de registros de usuarios no se pudo completar en una hora para las bases de datos relacionales, pero tomó solo 2.132 segundos en las bases de datos de gráficos de Neo4j. Debido a resultados tan sorprendentes, las bases de datos de gráficos se utilizan en muchos casos de uso de big data. Por ejemplo, la búsqueda de Google funciona con bases de datos de gráficos. La proporción de bases de datos de grafos es meniscal en comparación con las bases de datos relacionales o No-SQL. Aún así, dada la capacidad de trabajar de manera eficiente y rápida con cantidades masivas de datos, podemos ver las tendencias crecientes de usar datos gráficos para continuar durante un período más prolongado. Los puntos clave de este artículo son:

  1. SQL, seguida de No-SQL, es la base de datos más utilizada.
  2. Una base de datos de gráficos consta de nodos individuales y vínculos conocidos como relaciones que definen las relaciones entre estos nodos.
  3. Un nodo puede contener etiquetas, relaciones y propiedades, mientras que una relación requiere definir una dirección y puede tener propiedades opcionales.
  4. Neo4j es una base de datos de gráficos y se está volviendo cada vez más popular para las aplicaciones de Big Data.
  5. Hemos visto cómo comenzar con Neo4j y construir su primera base de datos de gráficos.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

Sello de tiempo:

Mas de Analítica Vidhya