Neo4jSua vida com grafos!
Oi!
• Hanneli (‘H' mudo)
• CodeMiner 42
• Café, Pokémon, Lego e bichos <3
HIRING
Afinal, por que grafos?
faculdade
precisa
representação
fácil
memorizar
O que não vamos ver aqui
• Teoria avançada de grafos
• Guia completo de Neo4j
• Introdução sobre NoSQL
• Exemplos de Redes...
Agenda
Teoria
básica
surge
representação
Neo4j
bancos
Primeiros
passos
vantagens
quando não
usar
Dia a dia com grafos
Um exemplo além de Twitter e Facebook
Exemplo
Como a Codeminer monta os times para os projetos?
Exemplo
Como a Codeminer monta os times para os projetos?
MATCH
Quantas vezes
você já não fez
desenhos assim?
Breve histórico
• Euler
• Estatística
• Patterns/relacionamento
• Dependências
• Trajetos
Persistência
Persistência
Persistência
Qual uma das primeiras matérias que!
vemos na faculdade?
Quem lembra?
Fila
Stack
Hash
Tree
Grafos
Persistência
Qual a primeira forma de armazenamento que vemos!
na disciplina de Banco de dados?
a. Fila
b. Stack
c. Hash
d...
Persistência
Você já tinha pensado nisso?
Quando me dei conta
disso?
Modelagem de usinas
hidrelétricas
Falhas modelo relacional
Quero representar isso no modelo relacional
USINA
localizacao:float
capacidade:float
nome:float
cidades_que_atende_ids:CIDADE...
FUUUUUUU….
FUUUUUUU….
• De acordo com a população, qual vizinhança de
usinas devo formar?
• Se uma usina cair, qual a melhor para rea...
Double Fail….
Desaprendi?
Olhe para isso
Parecidos?
Parecidos?
Bancos orientados
a grafos
Porque nem tudo precisa viver em tabelas
Neo4j
Nossas usinas agora em grafos
Itaipu! é_vizinha
Itá
latitude:33.43
longitude:32:33
capacidade:1400
latitude:43.43
longitud...
Nossas usinas agora em grafos
Itaipu! é_vizinha
Itá
latitude:33.43
longitude:32:33
capacidade:1400
latitude:43.43
longitud...
Representação visual
Nossas usinas agora em grafos
Itaipu! alimenta Foz do
iguaçu
latitude:33.43
longitude:32:33
capacidade:1400
populacao:2650...
Itaipu abastece quantas pessoas?
Traversal - Busca
Itaipu! alimenta Foz do
iguaçu
latitude:33.43
longitude:32:33
capacidade:1400
populacao:265000
alimenta
...
Cypher
Neo4j - Quando não usar?
Neo4j - Quando não usar?
• NoSQL Hater?
• Buscas - cautela (profundidade x largura)
• Cloud
• Monitoramento
• Infra (backu...
Neo4j - Quando não usar?
• NoSQL Hater?
• Buscas - cautela (profundidade x largura)
• Cloud
• Monitoramento
• Infra (backu...
Upcoming SlideShare
Loading in …5
×

Neo4j - Sua vida com grafos

1,669 views

Published on

Palestra TDC SP 2014

Neo4j - Sua vida com grafos

  1. 1. Neo4jSua vida com grafos!
  2. 2. Oi! • Hanneli (‘H' mudo) • CodeMiner 42 • Café, Pokémon, Lego e bichos <3 HIRING
  3. 3. Afinal, por que grafos? faculdade precisa representação fácil memorizar
  4. 4. O que não vamos ver aqui • Teoria avançada de grafos • Guia completo de Neo4j • Introdução sobre NoSQL • Exemplos de Redes Sociais (CLÁSSICO)
  5. 5. Agenda Teoria básica surge representação Neo4j bancos Primeiros passos vantagens quando não usar
  6. 6. Dia a dia com grafos Um exemplo além de Twitter e Facebook
  7. 7. Exemplo Como a Codeminer monta os times para os projetos?
  8. 8. Exemplo Como a Codeminer monta os times para os projetos? MATCH
  9. 9. Quantas vezes você já não fez desenhos assim?
  10. 10. Breve histórico • Euler • Estatística • Patterns/relacionamento • Dependências • Trajetos
  11. 11. Persistência
  12. 12. Persistência
  13. 13. Persistência Qual uma das primeiras matérias que! vemos na faculdade?
  14. 14. Quem lembra? Fila Stack Hash Tree Grafos
  15. 15. Persistência Qual a primeira forma de armazenamento que vemos! na disciplina de Banco de dados? a. Fila b. Stack c. Hash d. Tree e. N.D.A
  16. 16. Persistência
  17. 17. Você já tinha pensado nisso?
  18. 18. Quando me dei conta disso?
  19. 19. Modelagem de usinas hidrelétricas
  20. 20. Falhas modelo relacional
  21. 21. Quero representar isso no modelo relacional USINA localizacao:float capacidade:float nome:float cidades_que_atende_ids:CIDADE usinas_vizinhas_id:USINA populacao:int
  22. 22. FUUUUUUU….
  23. 23. FUUUUUUU…. • De acordo com a população, qual vizinhança de usinas devo formar? • Se uma usina cair, qual a melhor para reassumir sem comprometer o sistema? • Como evitar subutilização? • Como monitorar?
  24. 24. Double Fail….
  25. 25. Desaprendi?
  26. 26. Olhe para isso
  27. 27. Parecidos?
  28. 28. Parecidos?
  29. 29. Bancos orientados a grafos Porque nem tudo precisa viver em tabelas
  30. 30. Neo4j
  31. 31. Nossas usinas agora em grafos Itaipu! é_vizinha Itá latitude:33.43 longitude:32:33 capacidade:1400 latitude:43.43 longitude:56:33 capacidade:700 tensao_linha:230
  32. 32. Nossas usinas agora em grafos Itaipu! é_vizinha Itá latitude:33.43 longitude:32:33 capacidade:1400 latitude:43.43 longitude:56:33 capacidade:700 tensao_linha:230Node Relationship Attributes index
  33. 33. Representação visual
  34. 34. Nossas usinas agora em grafos Itaipu! alimenta Foz do iguaçu latitude:33.43 longitude:32:33 capacidade:1400 populacao:265000 alimenta Curitiba populacao:1700000
  35. 35. Itaipu abastece quantas pessoas?
  36. 36. Traversal - Busca Itaipu! alimenta Foz do iguaçu latitude:33.43 longitude:32:33 capacidade:1400 populacao:265000 alimenta Curitiba populacao:1700000
  37. 37. Cypher
  38. 38. Neo4j - Quando não usar?
  39. 39. Neo4j - Quando não usar? • NoSQL Hater? • Buscas - cautela (profundidade x largura) • Cloud • Monitoramento • Infra (backup) • Pouca RAM
  40. 40. Neo4j - Quando não usar? • NoSQL Hater? • Buscas - cautela (profundidade x largura) • Cloud • Monitoramento • Infra (backup) • Pouca RAM

×