Slide 1

Slide 1 text

Graph Databases A little connected tour

Slide 2

Slide 2 text

Nombre: Francisco Fernández Castaño FlowLab @fcofdezc fcofdez

Slide 3

Slide 3 text

El Origen

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

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?

Slide 6

Slide 6 text

El Origen • Fuerte base Matemática • Problemas muy estudiados

Slide 7

Slide 7 text

¿Por qué NoSQL?

Slide 8

Slide 8 text

Ventajas de BD Relacionales

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

DesVentajas de BD Relacionales

Slide 11

Slide 11 text

El Origen

Slide 12

Slide 12 text

DesVentajas de BD Relacionales Fricción Interoperabilidad Adaptación al cambio Escalabilidad No está destinada para ciertos escenarios

Slide 13

Slide 13 text

¿Por qué NoSQL?

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

¿Qué es una BD de Grafos?

Slide 16

Slide 16 text

Graph Databases

Slide 17

Slide 17 text

¿Qué es una BD de Grafos? Grafo Nodos Relaciones Propiedades Organiza

Slide 18

Slide 18 text

¿Cúal usaremos? Escrita en Java ACID Interfaz REST Lenguaje declarativo Cypher

Slide 19

Slide 19 text

¿Por qué? El enfoque tradicional en el contexto de datos conectados es artificial

Slide 20

Slide 20 text

¿Por qué? El enfoque tradicional en el contexto de datos conectados es artificial La teoría de grafos está muy desarrollada El modelado es más natural

Slide 21

Slide 21 text

¿Esto no es un grafo?

Slide 22

Slide 22 text

¿Y esto?

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Podemos trasladar el modelo del dominio que estamos tratando de forma natural

Slide 25

Slide 25 text

Redes sociales Casos de uso Sistemas de recomendaciones Gestión de permisos Problemas GeoEspaciales (Los 7 puentes) Gestión de redes

Slide 26

Slide 26 text

Gestión de infraestructuras de redes Ejemplos

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

(user)-[:USER_OF]->(app) (user)-[:USER_OF]->(app)-[:USES]->(database) (user)-[:USER_OF]->(app)-[:USES]->(database)-[:SLAVE_OF]->(another-database) (user)-[:USER_OF]->(app)-[:RUNS_ON]->(vm) (user)-[:USER_OF]->(app)-[:RUNS_ON]->(vm)-[:HOSTED_BY]->(server) (user)-[:USER_OF]->(app)-[:RUNS_ON]->(vm)-[:HOSTED_BY]->(server)-[:IN]->(rack) (user)-[:USER_OF]->(app)-[:RUNS_ON]->(vm)-[:HOSTED_BY]->(server)-[:IN]->(rack) <-[:IN]-(load-balancer)

Slide 37

Slide 37 text

Modelado de datos pertenecientes a varios dominios Ejemplos

Slide 38

Slide 38 text

Obras de Shakespeare Compañías que interpretan sus obras Lugares donde se representan Ejemplos

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

+-------------------------------------+ | play | perf_count | +-------------------------------------+ | "Julius Caesar" | 1 | | | "The Tempest" | 1 | | +-------------------------------------+ 2 rows

Slide 44

Slide 44 text

Fallos comunes a la hora de modelar

Slide 45

Slide 45 text

Detección de emails sospechosos Ejemplo

Slide 46

Slide 46 text

Primera aproximación

Slide 47

Slide 47 text

Segunda aproximación

Slide 48

Slide 48 text

Segunda aproximación

Slide 49

Slide 49 text

Tercera aproximación

Slide 50

Slide 50 text

Cuarta aproximación

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

Quinta Aproximación

Slide 54

Slide 54 text

Antipatrones Modela hechos como nodos Relaciones genéricas vs concretas Usa las relaciones para modelar como interactuan los nodos/hechos

Slide 55

Slide 55 text

Referencias

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

Cuando la única herramienta que tienes es un martillo, todo problema comienza a parecerse a un clavo. Abraham Maslow

Slide 58

Slide 58 text

¿Preguntas?

Slide 59

Slide 59 text

¡Gracias!