SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
Graph Databases
A little connected tour
!

@fcofdezc
El origen
Dado el mapa de Königsberg, con el río Pregolya dividiendo
el plano en cuatro regiones distintas, que están unidas a
través de los siete puentes,
¿es posible dar un paseo comenzando desde cualquiera de
estas regiones, pasando por todos los puentes, recorriendo
sólo una vez cada uno, y regresando al mismo punto de
partida?
= (V, E)
ElG origen
¿Qué es?
rda
Gua

a

Relaciones

e

Propiedades

Tie
n

e

Tie
n

Organiza

ard
Gu

Nodos

Grafo
Escrita en java
ACID
Interfaz REST
Cypher
¿Por qué NOSQL?
Ventajas BD Relacionales
Ventajas de BD Relacionales
Concurrencia
Persistencia

Persistencia
Integración
Estándar
Ventajas de BD Relacionales
Concurrencia
Persistencia

Concurrencia
Integración
Estándar
Ventajas de BD Relacionales
Concurrencia
Persistencia

Integración
Integración
Estándar
Ventajas de BD Relacionales
Concurrencia
Persistencia

Estándar

Integración
Estándar
DESVentajas BD Relacionales
Fricción
El Origen
class Client < ActiveRecord::Base	
has_one :address	
has_many :orders	
has_and_belongs_to_many :roles	
end
DesVentajas de BD Relacionales
Fricción!

Interoperabilidad
Adaptación al cambio
Interoperabilidad
Escalabilidad
No está destinada para ciertos escenarios
Adaptación al cambio
!Escalabilidad
MySQL vs Neo4j
Profundidad Tiempo MySQL(s) Tiempo Neo4j (s)

Nº Resultados

2
3

0.016
30.267

0.01
0.168

~2500
~110,000

4

1543.505

1.359

~600,000

5

No Acaba

2.132

~800,000
* Neo4J in Action
El enfoque tradicional en el contexto
de datos conectados es artificial
Podemos trasladar el modelo del dominio
que estamos tratando de forma natural
Casos de uso
Redes Sociales
Sigue
Juan

Jose
Sigue
María
Problemas Geoespaciales
Detección de fraude
Gestión de permisos
Gestión de redes
Cypher
Lenguaje declarativo
ASCII oriented
Pattern matching
Cypher
Cypher
Traverser API
Core API
Kernel
Cypher

a

b

(a)-->(b)
Cypher
toca_en
clapton

cream

(clapton)-[:toca_en]->(cream)
Cypher
Sigue
Juan

Jose

Sigue
María

(juan:Persona)-[:sigue]->(jose:Persona)	
!

(maria:Persona)-[:sigue]->(juan:Persona)
Cypher
toca_en

etiquetado

{fecha: 1968}

clapton
{nombre: Eric
Clapton}

cream

Blues

(clapton)-[:toca_en]->(cream)<-[:etiquetado]-(blues)
Cypher
MATCH (a)-—>(b)	
RETURN a,b;
Cypher
MATCH (a)-[:TOCA_EN]—>(b)	
RETURN a,b;
Cypher
MATCH (a)-[t:TOCA_EN]—>(g),	
	 	 (g)<-[:ETIQUETADO]-(e)	
RETURN a.nombre,	
	 	 	 t.fecha,	
	 	 	 e.nombre;
Cypher
START c=node:node_auto_index(nombre=‘clapton’)	
MATCH (c)-[t:TOCA_EN]—>(g),	
	
(g)<-[:ETIQUETADO]-(e)	
RETURN c.nombre,	
	 	 t.fecha,	
	 	 e.nombre;
Cypher
START c=node:node_auto_index(nombre=‘clapton’)	
	
e=node:node_auto_index(nombre=‘blues’)	
MATCH (c)-[t:TOCA_EN]—>(g),	
	
(g)<-[:ETIQUETADO]-(e)	
RETURN c.nombre,	
	 	 e.nombre	
ORDER BY t.fecha
Cypher
START c=node:node_auto_index(nombre=‘clapton’)	
	
e=node:node_auto_index(nombre=‘blues’)	
MATCH (c)-[t:TOCA_EN | PRODUCE]—>(g),	
	
(g)<-[:ETIQUETADO]-(e)	
WHERE t.fecha > 1968	
RETURN c.nombre,	
	 	 e.nombre
Cypher

MATCH (juan)-[:CONOCE*5]—>(pepe)
START startNode=node:node_auto_index(name = ‘Sol'),
endNode=node:node_auto_index(name = ‘Cuzco')
MATCH p = (startNode)-[rels:CONNECTED_TO]->(endNode)
RETURN p AS shortestPath,
reduce(weight=0, r in rels: weight + r.weight) as tWeight
ORDER BY tWeight ASC
LIMIT 1
Sistema de
recomendación
Red social de cine
Red social de cine
Usuarios puntúan películas
Personas actúan en películas
Personas dirigen películas
Usuarios siguen a otros usuarios
Red social de cine
¿Cómo lo modelamos?
Red social de cine
Sigue
User

User
Puntúa
{nota}

Actua en
Film

Actor
Dirige
Director
Red social de cine
START fran=node:Persona(name='Fran'),
film=node:Peliculas(title=‘Pulp Fiction')
MATCH fran-[or:PUNTUA]->film<-[:PUNTUA]-otro_user-[r:PUNTUA]->otras_pelis
RETURN distinct otras_pelis.title;
Red social de cine
Puntúa
{nota}
Puntúa
{nota}

Film
Film

User 1

Fran

User 2
Puntúa
{nota}

Film
PF

Puntúa
{nota}

Puntúa
{nota}
Red social de cine
START fran=node:Persona(name='Fran'),
film=node:Peliculas(title=‘Pulp Fiction')
MATCH fran-[or:PUNTUA]->film<-[:PUNTUA]-otro_user-[r:PUNTUA]->otras_pelis
WHERE or.stars = r.stars
RETURN distinct otras_pelis.title;
Red social de cine
START fran=node:Persona(name='Fran'),
film=node:Peliculas(title=‘Pulp Fiction')
MATCH fran-[or:PUNTUA]->film<-[:PUNTUA]-otro_user-[r:PUNTUA]->otras_pelis,
otro_user-[:SIGUE]-fran
WHERE or.stars = r.stars
RETURN distinct otras_pelis.title;
Red social de cine
Puntúa
{nota}
Sigue

User 1
Puntúa
{nota}

Fran
Puntúa
{nota}

Film
PF

Film
Red social de cine
START tarantino=node:Persona(name='Quentin Tarantino')
MATCH tarantino-[:DIRIGE]->peli<-[:ACTUA_EN]-tarantino
RETURN movie.title;
!
Red social de cine
Actua en
Film

Actor
Dirige
Director
Red social de cine
Ahora se deben poder categorizar las películas
Red social de cine
Genero

Genero
Pertenece_a

Pertenece_a
SubGenero

SubGenero

Pertenece_a

Pertenece_a
Film
Red social de cine
START fran=node:Persona(name='Fran'),
film=node:Peliculas(title=‘Pulp Fiction')
MATCH fran-[or:PUNTUA]->film<-[:PUNTUA]-otro_user-[r:PUNTUA]->otras_pelis,
film-[:PERTENECE:*3]->genero<-[:PERTENECE]-otras_pelis
WHERE or.stars = r.stars
RETURN distinct otras_pelis.title;
Instead of just picking a relational database
because everyone does, we need to
understand the nature of the data we’re
storing and how we want to manipulate it.
Martin Fowler
Referencias
Neo4J as a service

http://www.graphenedb.com
Neo4J Spain
20 Febrero

http://www.meetup.com/graphdb-spain/
Gracias

Más contenido relacionado

Más de fcofdezc

Knowing your garbage collector - PyCon Italy 2015
Knowing your garbage collector - PyCon Italy 2015Knowing your garbage collector - PyCon Italy 2015
Knowing your garbage collector - PyCon Italy 2015fcofdezc
 
STM on PyPy
STM on PyPySTM on PyPy
STM on PyPyfcofdezc
 
Knowing your garbage collector - FOSDEM 2015
Knowing your garbage collector - FOSDEM 2015Knowing your garbage collector - FOSDEM 2015
Knowing your garbage collector - FOSDEM 2015fcofdezc
 
Extending Python - FOSDEM 2015
Extending Python - FOSDEM 2015Extending Python - FOSDEM 2015
Extending Python - FOSDEM 2015fcofdezc
 
Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014fcofdezc
 
Understanding PyPy - PyConEs 14
Understanding PyPy - PyConEs 14Understanding PyPy - PyConEs 14
Understanding PyPy - PyConEs 14fcofdezc
 
Knowing your Garbage Collector / Python Madrid
Knowing your Garbage Collector / Python MadridKnowing your Garbage Collector / Python Madrid
Knowing your Garbage Collector / Python Madridfcofdezc
 
Knowing your Python Garbage Collector
Knowing your Python Garbage CollectorKnowing your Python Garbage Collector
Knowing your Python Garbage Collectorfcofdezc
 
Graph databases - EuroPython 2014
Graph databases - EuroPython 2014Graph databases - EuroPython 2014
Graph databases - EuroPython 2014fcofdezc
 
Extending Python - EuroPython 2014
Extending Python - EuroPython 2014Extending Python - EuroPython 2014
Extending Python - EuroPython 2014fcofdezc
 

Más de fcofdezc (10)

Knowing your garbage collector - PyCon Italy 2015
Knowing your garbage collector - PyCon Italy 2015Knowing your garbage collector - PyCon Italy 2015
Knowing your garbage collector - PyCon Italy 2015
 
STM on PyPy
STM on PyPySTM on PyPy
STM on PyPy
 
Knowing your garbage collector - FOSDEM 2015
Knowing your garbage collector - FOSDEM 2015Knowing your garbage collector - FOSDEM 2015
Knowing your garbage collector - FOSDEM 2015
 
Extending Python - FOSDEM 2015
Extending Python - FOSDEM 2015Extending Python - FOSDEM 2015
Extending Python - FOSDEM 2015
 
Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014Extending Python - Codemotion Milano 2014
Extending Python - Codemotion Milano 2014
 
Understanding PyPy - PyConEs 14
Understanding PyPy - PyConEs 14Understanding PyPy - PyConEs 14
Understanding PyPy - PyConEs 14
 
Knowing your Garbage Collector / Python Madrid
Knowing your Garbage Collector / Python MadridKnowing your Garbage Collector / Python Madrid
Knowing your Garbage Collector / Python Madrid
 
Knowing your Python Garbage Collector
Knowing your Python Garbage CollectorKnowing your Python Garbage Collector
Knowing your Python Garbage Collector
 
Graph databases - EuroPython 2014
Graph databases - EuroPython 2014Graph databases - EuroPython 2014
Graph databases - EuroPython 2014
 
Extending Python - EuroPython 2014
Extending Python - EuroPython 2014Extending Python - EuroPython 2014
Extending Python - EuroPython 2014
 

Último

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (16)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Graph Databases: A little connected tour