Neo4j Sua vida com grafos!
Oi! 
• Hanneli (‘H' mudo) 
• CodeMiner 42 
HIRING 
• Café, Pokémon, Lego e bichos <3
Afinal, por que grafos? 
faculdade 
Numa trilha de Ruby! 
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 R...
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. H...
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_id...
FUUUUUUU….
FUUUUUUU…. 
• De acordo com a população, qual vizinhança de 
usinas devo formar? 
• Se uma usina cair, qual a melhor para ...
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 
tensao_linha:230 
Itaipu! é_vizinha 
Itá 
latitude:33.43 
longitude:32:33 
capacidade:1400 ...
Nossas usinas agora em grafos 
Node tensao_linha:230 
Itaipu! é_vizinha 
Itá 
latitude:33.43 
longitude:32:33 
capacidade:...
Representação visual
Nossas usinas agora em grafos 
Itaipu! alimenta Foz do 
iguaçu 
latitude:33.43 
longitude:32:33 
capacidade:1400 
populaca...
Itaipu abastece quantas pessoas?
Traversal - Busca 
Itaipu! alimenta Foz do 
iguaçu 
latitude:33.43 
longitude:32:33 
capacidade:1400 
populacao:265000 
al...
Cypher
Neo4j com Ruby <3 
Active Record 
neo4j.rb
Neo4j com Ruby <3 
Neography 
Wrapper da REST API
Neo4j - Quando não usar?
Neo4j - Quando não usar? 
• NoSQL Hater? 
• Buscas - cautela (profundidade x largura) 
• Cloud 
• Monitoramento 
• Infra (...
Obrigada! 
@hannelita 
hannelita@gmail.com
Referências 
• NoSQL Hater? 
• Buscas - cautela (profundidade x largura) 
• Cloud 
• Monitoramento 
• Infra (backup) 
• Po...
Próximos SlideShares
Carregando em…5
×

Dia a dia com grafos, Neo4j e Ruby

610 visualizações

Publicada em

Palestra no TDC POA 2014 - trilha de Ruby

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
610
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Dia a dia com grafos, Neo4j e Ruby

  1. 1. Neo4j Sua vida com grafos!
  2. 2. Oi! • Hanneli (‘H' mudo) • CodeMiner 42 HIRING • Café, Pokémon, Lego e bichos <3
  3. 3. Afinal, por que grafos? faculdade Numa trilha de Ruby! 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 tensao_linha:230 Itaipu! é_vizinha Itá latitude:33.43 longitude:32:33 capacidade:1400 latitude:43.43 longitude:56:33 capacidade:700
  32. 32. Nossas usinas agora em grafos Node tensao_linha:230 Itaipu! é_vizinha Itá latitude:33.43 longitude:32:33 capacidade:1400 latitude:43.43 longitude:56:33 capacidade:700 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 com Ruby <3 Active Record neo4j.rb
  39. 39. Neo4j com Ruby <3 Neography Wrapper da REST API
  40. 40. Neo4j - Quando não usar?
  41. 41. Neo4j - Quando não usar? • NoSQL Hater? • Buscas - cautela (profundidade x largura) • Cloud • Monitoramento • Infra (backup) • Pouca RAM
  42. 42. Obrigada! @hannelita hannelita@gmail.com
  43. 43. Referências • NoSQL Hater? • Buscas - cautela (profundidade x largura) • Cloud • Monitoramento • Infra (backup) • Pouca RAM

×