entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam?...

72
Por que as relações entre seus dados importam?

Transcript of entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam?...

Page 1: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Por que as relaçõesentre seus dados importam?

Page 2: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

senior solutions architect_

quem sou eu_

/khaosdoctor @_staticvoidlsantos.dev@khaosdoctor

nindoo.ai

Page 3: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

obarra.co

trainingcenter.io

Page 4: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

abcdevelopers.org

cupom: LSANTOSABCDEV2019

Page 5: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

slsweek.netlify.com

Page 6: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Bancos de dados hoje_

Page 7: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

lidamos bem com o crescimento dos dados

Page 8: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

e o crescimento das relações entre esses dados?

Page 9: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

O problema dos relacionamentos_

Page 10: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Bancos relacionais_

Page 11: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

solução?

Page 12: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

removemos os relacionamentos_

Page 13: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Bancos não-relacionais

Page 14: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Grafos_

Page 15: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

O que são grafos_

Page 16: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

nós_

Page 17: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

11

Um nó simples

Page 18: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

1{ name: 'alice' }

Um nó com propriedades

Page 19: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

alice:Person{ name: 'alice' }

Um nó com uma label

Page 20: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

arestas_

Page 21: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

FOLLOWS

Relacionamento orientado

1{ name: 'alice' }

2{ name: 'bob' }

Page 22: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

1{ name: 'alice' }

2{ name: 'bob' }

FOLLOWS

Relacionamento não orientado

Page 23: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

FOLLOWS

Relacionamento orientado com propriedades

1{ name: 'alice' }

2{ name: 'bob' }

{since: '2018-04-10'}

Page 24: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 25: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 26: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Neo4J

Page 27: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Neo4Jo banco para todos os seus

grafos

- Criado em 2007 como uma alternativa a bancos relacionais

- Escrito em Java- Utiliza Cypher como query

language- Não é o único banco de grafos

Page 28: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Vantagens em bancos de grafos_

Page 29: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

flexibilidade_

Page 30: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

naturalidade_

Page 31: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

velocidade_

Page 32: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Armazenamento nativo_

Page 33: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Armazenamento simulado_

Page 34: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Query language_

Page 35: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

cypher

Page 36: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

(a:Person)-[:FOLLOWS]->(b:Person)

Page 37: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Como montar uma query_

Page 38: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Quem me segue e segue outra pessoa que ainda não me segue?

Page 39: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

extrair constantes_

Page 40: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

quem sou "eu"?

Page 41: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

(me:Person {handler: '_StaticVoid'})

Page 42: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

descrever o relacionamento_

Page 43: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

uma pessoa que me segue

Page 44: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

(p1:Person)-[r:FOLLOWS]->(me)

Page 45: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

e segue outra pessoa

Page 46: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

(p2:Person)<-[:FOLLOWS]-(p1:Person)-[:FOLLOWS]->(me)

Page 47: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

que ainda não me segue

Page 48: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

negações

Page 49: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

WHERE NOT (p2)-[:FOLLOWS]->(me)

Page 50: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 51: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 52: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Extraindo inteligência

Page 53: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Teoria dos grafos_

Page 54: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Teoria dos Grafos

- "Criada" por Leonhard Euler em 1736

- Visa analisar e extrair informações relevantes sobre grafos

- Ótima para analisar grupos com relações bem estabelecidas

- O problema das 7 pontes de Königsberg é o mais famoso

- O problema do caixeiro viajante é um problema NP-Completo de grafos

Page 55: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Knight's tour

Page 56: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

InteligênciaPorque é muito mais do que um

desenho

- Centralidade- Proximidade- PageRanking- ArticleRanking

- Detecção de comunidades- Componentes conexos- Contagem de tríades

- Encontrar caminhos- Menor caminho

- Dijkstra

- Similaridade- Predição de relacionamentos

Page 57: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Centralidade

Page 58: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

importância de um nó sobre a rede

Page 59: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Betwenness

A influência de um nó sobre o fluxo de informações em um grafo.

Page 60: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 61: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Closeness (proximidade)

Nós que são capazes de transmitir informação muito rápido para a rede

Page 62: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 63: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

PageRank

A popularidade de um nó na rede

Page 64: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 65: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Detecção de comunidades_

Page 66: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Detecção de Louvain

Page 67: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 68: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Similaridade_

Page 69: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

Jaccard

Similaridade entre dois conjuntos

Page 70: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_
Page 71: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

referências_

- https://en.wikipedia.org/wiki/Neo4j- https://en.wikipedia.org/wiki/Knight%27s_tour- https://pt.wikipedia.org/wiki/NP-completo- https://pt.wikipedia.org/wiki/Problema_do_caixeiro-viajante- https://en.wikipedia.org/wiki/Seven_Bridges_of_Königsberg- https://en.wikipedia.org/wiki/Graph_theory- https://neo4j.com/docs/cypher-manual/current/introduction/- https://neo4j.com/developer/cypher/- https://neo4j.com/docs/getting-started/current/get-started-with-neo4j/- https://neo4j.com/docs/graph-algorithms/current/introduction/- https://www.youtube.com/watch?v=l76udM3wB4U&list=PL9Hl4pk2FsvWM9GWaguRhlCQ-pa-ERd4U- https://medium.com/neo4j/graph-visualization-with-neo4j-using-neovis-js-a2ecaaa7c379- https://github.com/neo4j-contrib/neovis.js- https://neo4j.com/developer/tools-graph-visualization/

Page 72: entre seus dados importam? · 2019. 7. 12. · Por que as relações entre seus dados importam? senior solutions architect_ ... Bancos não-relacionais. Grafos_ O que são grafos_

/khaosdoctor @_staticvoidlsantos.dev @khaosdoctor

obrigado_