Desvendando um banco de grafos -...
Transcript of Desvendando um banco de grafos -...
![Page 1: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/1.jpg)
Bancos de dados de Grafos e Neo4j
IGOR ROZANI
![Page 2: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/2.jpg)
Igor Rozani
@IgorRozani
IgorRozaniIgorRozani
IgorRozani
![Page 3: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/3.jpg)
Tipo de bancos
SQL NOSQL
![Page 4: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/4.jpg)
Tipos de NoSQL
![Page 5: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/5.jpg)
Bancos de grafos
![Page 6: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/6.jpg)
Estrutura de grafos
Segue
Segue
![Page 7: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/7.jpg)
Estrutura de grafos
Pessoa
Nome Gabriel
País Canadá
Estado civil Namorando
Pessoa
Nome Carol
País Brasil
Foto
Legenda Meu cachorro
Segue
Segue
Curtiu
Data 2019-01-01
![Page 8: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/8.jpg)
Estrutura de grafos
Relacional Grafo
Linha Nós
Joins Relacionamentos
Nome da tabela Labels
Coluna Propriedades
![Page 9: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/9.jpg)
Estrutura de grafos
![Page 10: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/10.jpg)
Estrutura de grafos
![Page 11: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/11.jpg)
Bancos de grafos
SQL Cypher
![Page 12: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/12.jpg)
Criação de um nó
Pessoa
Nome Gabriel
País Canadá
Estado civil Namorando
CREATE (:Pessoa {nome: 'Gabriel', pais: 'Canadá', estadoCivil: 'namorando'})
![Page 13: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/13.jpg)
Criação de um nó
CREATE (:Pessoa {nome: 'Gabriel', pais: 'Canadá', estadoCivil: 'namorando'})
Comando criação
Label Propriedades
![Page 14: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/14.jpg)
Criação de um relacionamento
Pessoa
Nome Gabriel
País Canadá
Estado civil Namorando
Pessoa
Nome Carol
País Brasil
Segue
Segue
MATCH (p1:Pessoa{nome: 'Gabriel'}), (p2:Pessoa{nome: 'Carol’})CREATE (p1)-[:SEGUE]->(p2)
![Page 15: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/15.jpg)
Criação de um relacionamento
MATCH (p1:Pessoa{nome: 'Gabriel'}), (p2:Pessoa{nome: 'Carol’})
CREATE (p1)-[:SEGUE]->(p2)
Comando criação
Dados do relacionamento
Nó 1 Nó 2
Comando busca
Filtro do primeiro nó Filtro do segundo nó
Indicação de relacionamento
Direção do relacionamento
![Page 16: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/16.jpg)
Atualizar um registro
Pessoa
Nome Carol
País Brasil
Pessoa
Nome Carol
País Islândia
Idade 30
MATCH (p:Pessoa {nome: 'Carol'})SET p.idade = 30,
p.pais = 'Islândia'
![Page 17: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/17.jpg)
Atualizar um registro
MATCH (p:Pessoa {nome: 'Carol'})SET p.pais = 'Islândia’,
p.idade = 30
Filtro para encontrar o nó da CarolComando
busca
Comando atualização Nova propriedade
Atualização de propriedade existente
![Page 18: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/18.jpg)
Excluir um nó
MATCH (p:Pessoa {nome: 'Carol'})DELETE p
Filtro para encontrar o nó da CarolComando
busca
Comando exclusão
![Page 19: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/19.jpg)
Excluir um relacionamento
MATCH (:Pessoa {nome: 'Carol'})-[a:ADICIONOU]-()DELETE a
Filtro para encontrar o nó da CarolComando
buscaFiltro para encontrar o
relacionamento
Filtro de nó em branco
Comando exclusão
![Page 20: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/20.jpg)
Excluir um nó e seus relacionamentos
MATCH (p:Pessoa {nome: 'Carol’})DETACH DELETE p
Filtro para encontrar o nó da CarolComando
busca
Comando para exclusão de nó e seus relacionamentos
![Page 21: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/21.jpg)
Consultar dados
Pessoa
Nome Gabriel
País Canadá
Estado civil Namorando
MATCH (p:Pessoa{nome:'Gabriel'})RETURN p
![Page 22: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/22.jpg)
Consultar dados
Consulta Retorno
MATCH(p:Pessoa {nome:'Gabriel'})
RETURN p
{“nome”: “Gabriel”,“estadoCivil”: “Namorando”,“pais”: “Canadá”
}
MATCH(p:Pessoa {nome:'Gabriel'})
RETURN p.nome
“Gabriel”
![Page 23: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/23.jpg)
Consultar dados
MATCH (:Pessoa{nome:"Gabriel"})-[:CURTIU]->(f:Foto)<-[:ADICIONOU]-(:Pessoa{nome:"Carol"})
RETURN count(f)
AdicionouCurtiu
Gabriel Carol
![Page 24: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/24.jpg)
Consultar dados
MATCH (:Pessoa{nome:"Gabriel"})-[:CURTIU]->(f:Foto)<-[:ADICIONOU]-(:Pessoa{nome:"Carol"})
RETURN count(f)
Filtro para encontrar as fotos que o Gabriel curtiu
Filtro para encontrar as fotos que a Carol adicionou
Retorno da quantidade de fotos curtidas
![Page 25: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/25.jpg)
Consultar dados
Segue
Segue
Rafael
Franciele
Ana Paulo
Renata
Gabriel
Carol
![Page 26: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/26.jpg)
Consultar dados
MATCH (p1:Pessoa{nome:'Rafael'}),
(p2:Pessoa{nome:'Carol’}),sp = shortestPath((p1)-[:SEGUE*]-(p2))
RETURN EXTRACT(n in NODES(sp) | n.nome) AS Conexoes
Resultado: ["Rafael", "Franciele", "Gabriel", "Carol"]
![Page 27: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/27.jpg)
Consultar dados
Segue
Segue
Rafael
Franciele
Ana Paulo
Renata
Gabriel
Carol
![Page 28: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/28.jpg)
Performance
Fonte: Livro Graph Databases for Beginners
![Page 29: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/29.jpg)
Quando usar?Redes sociais
Sistema de recomendação
Sistema de logística
Detecção de fraude
Controle de acesso
“Vou usar banco de grafos pra tudo”
![Page 30: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/30.jpg)
Empresas que utilizam
![Page 31: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/31.jpg)
Como começar?Documentação
Neo4j GraphGists
Online meetups
![Page 32: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/32.jpg)
CertificaçãoPreço: grátis
Questões: 80
Tempo de prova: 1 hora
Nota mínima: 80%
Formato: perguntas de múltiplas escolhas
Limite de tentativas?: infinito enquanto não passar
![Page 33: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/33.jpg)
Obrigado!
![Page 34: Desvendando um banco de grafos - UnBwidat2019.fci.unb.br/images/apresentacoes/convidados/...Estrutura de grafos Pessoa Nome Gabriel País Canadá Estado civil Namorando Pessoa Nome](https://reader035.fdocumentos.tips/reader035/viewer/2022071407/60ff28aae744df0e475da6e8/html5/thumbnails/34.jpg)
Dúvidas?