Modelo de datos en Neo4j

El modelo de datos en Neo4j organiza los datos utilizando los conceptos de Nodes y relaciones. Tanto los Nodes como las relaciones pueden tener propiedades, que almacenan los elementos de datos asociados con los Nodes y las relaciones. 

Los Nodes pueden tener etiquetas :  

  • Un Node puede tener cero, una o varias etiquetas.
  • Los Nodes que tienen la misma etiqueta se agrupan en una colección que identifica un subconjunto de los Nodes en el gráfico de la base de datos con fines de consulta.

Las relaciones están dirigidas, cada relación tiene un Node inicial y un Node final, así como un tipo de relación, que cumple una función similar a la etiqueta de un Node al identificar relaciones similares que tienen el mismo tipo de relación. Las propiedades se pueden especificar a través de un patrón de mapa, que es formado por uno o más pares de «nombre: valor» encerrados entre corchetes. 

Ejemplo: (Lname: ‘Sharma’, Fname: ‘Nitin’, Minit: ‘B’). 

El modelo de datos gráficos de Neo4j se asemeja a cómo se representan los datos en los modelos ER y EER sobre la teoría de gráficos convencional.

Creación de Nodes en Neo4j: Creación de Nodes para una EMPRESA: 
 

CREAR (e1: EMPLEADO, {Empid: ‘1’, Lname: ‘Sharma’, Fname: ‘Nitin’, Minit: ‘B’}) 
CREAR (e2: EMPLEADO, {Empid: ‘2’, Lname: ‘Rao’ . Fname: ‘Rupesh’}) 
CREAR (e3: EMPLEADO, {Empid: ‘3’, Lname: ‘Dave’, Fname: ‘Gopal’)) 
CREAR (e4: EMPLEADO, {Empid: ‘4’, Lname: ‘ Ojha’, Fname: ‘Baibhav’, Minit: ‘S’}) 

CREAR (d1: DEPARTAMENTO, {Dno: ‘1’, Dname: ‘Empresa’}) 
CREAR (d2: DEPARTAMENTO. {Dno: ‘2’, Dname: ‘Desarrollador’)) 

CREAR (p1: PROYECTO, {Pno: ‘8’, Pname: ‘WebDev’}) 
CREAR (p2: PROYECTO, {PNo: ‘2’, Pname: ‘AppDev’)) 
CREAR (p3: PROYECTO, {Pno: ‘ 5’, Pnarne: ‘APIDev’}) 

CREAR (loc1: UBICACIÓN, {Nombre: ‘Noida’}) 
CREAR (loc2: UBICACIÓN, {Nombre: ‘Hyderabad’}) 
CREAR (loc3: UBICACIÓN, {Nombre: ‘Bengaluru’}) 
CREAR (loc4: UBICACIÓN, {Nombre : ‘Chennai’}) 
 

Creación de relaciones en Neo4j: Creación de relaciones para una EMPRESA: 
 

CREAR (e1)- [: Funciona para]-> (d1) 
CREAR (e3)- [: Funciona para]-> (d2) 

CREAR (d1)- [: Gerente ] -> (e2) 
CREAR (d2)- [: Gerente ] -> (e4) 

CREAR (d1)- [: UbicadoEn ]-> (loc1) 
CREAR (d1)- [: UbicadoEn ]-> (loc3) 
CREAR (d1)- [: UbicadoEn ]-> (loc4) 
CREAR (d2)- [: UbicadoEn ]-> (loc2) 

CREAR (e1)- [: WorksOn, {Horas: ‘28.5’}] -> (p1) 
CREAR (e1)- [: WorksOn, {Horas: ‘7.5’}] -> (p2) 
CREAR (e2)- [ : WorksOn, {Horas: ‘15.0’}] -> (p1) 
CREAR (e2)- [: WorksOn, {Horas: ‘15.0’}] -> (p2) 
CREAR (e2)- [: WorksOn, {Horas: ‘10.0’}] -> (p3) 
CREAR (e2) -[: WorksOn, {Horas: ‘10.0’}] -> (p2) 
 

Características del modelo de datos Neo4j: 

  • Etiquetas y propiedades: una etiqueta de Node se puede declarar/especificar cuando se crea un Node.
    • También es posible crear Nodes sin etiquetas.
  • Relaciones y tipos de relaciones:-> ” especifica la dirección de la relación.
    • La relación se puede recorrer en cualquier dirección.
  • Rutas: una ruta especifica un recorrido de parte del gráfico. Por lo general, se usa como parte de una consulta para especificar un patrón, donde la consulta recuperará los datos del gráfico que coincidan con el patrón.
    • Normalmente, una ruta se especifica mediante un Node inicial, seguido de una o más relaciones, que conducen a uno o más Nodes finales que cumplen el patrón.
  • Esquema opcional:  los gráficos se pueden crear y usar sin un esquema (opcional).
    • Las funciones principales relacionadas con la creación de esquemas implican la creación de índices y restricciones en función de las etiquetas y las propiedades.
  • Indexación e identificadores de Nodes: el sistema Neo4j crea un identificador interno único definido por el sistema para cada Node, cuando se crea un Node. Para recuperar Nodes individuales usando otras propiedades de los Nodes de manera eficiente, el usuario puede crear índices para la colección de Nodes que tienen una etiqueta particular.

Publicación traducida automáticamente

Artículo escrito por nitin_sharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *