2. Banco de dados com Neo4J
➢ Bancos de dados NoSQL – Bancos orientados a
Grafos: Neo4J.
® Manipulação e representação de dados orientados
a grafos com R.
“Pessoas comuns buscam uma ordem no cosmos, enquanto
os gênios buscam compreender e controlar o caos.”
Albert Einstein, Físico Alemão.
“Do caos surge o cosmos, assim como em qualquer
desordem encontramos uma ordem secreta”
Carl Jung, Médico Suíço
7. Introdução ao Neo4J
✓ A instalação do software será iniciada, é uma instalação padrão
do Windows:
✓ A chave será solicitada, espero que tenha anotado!
NEXT NEXT NEXT END
12. Introdução ao Neo4J
Informações do Banco de Dados
Scripts Favoritos de Cypher
Manual de Instruções e Exemplos
Configurações do Software
Informações
Salva o Script nos Favoritos
Apaga o Script Digitado
Executa o Script Digitado
Explore!
14. Introdução ao Neo4J
➢ Glossário:
1) Nós – pontos de um Grafo, que neste caso são os dados orientados.
2) Relações ou Ligações – são arestas que ligam os nós em um Grafo, neste caso são
direcionados e representam as correlações entre os dados.
3) Labels – termos que denominam os nós ou as ligações, são os tipos de dados e
correlações.
4) Properties – são as informações referentes aos nós e às ligações, são os dados
constituintes de cada nó do seu banco.
❖ Nós == (:Label {Properties:})
❖ Relações == [:Label {Properties:}]
➢ Princípios da linguagem Cypher:
15. Introdução ao Neo4J
➢ Vamos introduzir a linguagem Cypher com um exemplo no qual 8 clientes
compram N produtos (10 tipos) em 3 lojas distintas.
➢ Primeiro: Criando dois nós e uma relação entre eles:
Sintaxe básica:
CREATE () : Cria Nós
CREATE ()-[]->() : Cria Relações
16. Introdução ao Neo4J
2
3
4
1
1) Execute o código, mas
o Grafo não vai
aparecer.
2) Para aparecer o Grafo
digite esta linha, vide
próximo slide.
3) Linha referente aos nós,
com informações e
possibilidades de
edição.
4) Linha referente às
relações, com
informações e edições.
17. Introdução ao Neo4J
➢ Segundo: Para ler (Read) ou pesquisar os dados neste banco, deve-se
utilizar a função MATCH, que é respectiva na linguagem Cypher à função
SELECT na linguagem SQL.
▪ A utilização desta função será amplamente explorada nos slides
seguintes, mas cabe salientar que para visualizar um Grafo:
MATCH (n) RETURN n
▪ O comando acima vai buscar (match) todos os nós (n) e retornar (return)
estes na tela, como foi apresentado no slide anterior.
18. Introdução ao Neo4J
➢ Terceiro: Use SET para atualizar (Update) os dados em um Nó:
➢ Podemos também atualizar as propriedades de uma Relação:
➢ 1122 é o NOVO valor do CPF da Maria e 5 é o NOVO peso da Relação.
➢ ATENÇÃO! Uma NOVA propriedade pode ser ADICIONADA com SET.
19. Introdução ao Neo4J
➢ Último: Por fim, para Deletar nós ou relações utilize os comandos:
❑ Nós sem relações:
MATCH (c:Cliente {nome:“Maria Santos”}) DELETE c
❑ Nós com relações:
MATCH (u:Cliente {nome:“Maria Santos”})-[r]-() DELETE u
❑ Deletando a relação CompraNa:
MATCH ()-[r:CompraNa]-() DELETE r
❑ Deletando TUDO:
MATCH (n) DETACH DELETE n
33. Introdução ao Neo4J
❑ Quantas vendas a Magazine Luiza realizou?
Exporte
SOMA
Outra
Forma
34. Introdução ao Neo4J
❑ Qual é o valor total das vendas da loja Magazine Luiza?
➢ (2 Guarda-Roupas) 2400 + (2 Sofá) 1400 + (Panelas) 850 + (Cama) 1800 + (Mesa) 1400 +
(Micro-ondas) 400 + (Televisão) 1100 + (Estante) 600 + (Geladeira) 1200 = ?
➢ 2400+1400+850 + 1800+1400+400 + 1100+600+1200 = 4650 + 3600 + 2900 = 11150
35. Introdução ao Neo4J
❑ Dentre os 10 produtos, quais não foram vendidos pela Submarino?
Conferindo ...
36. Introdução ao Neo4J
❑ Dentre os 10 produtos, quais não foram vendidos pela Submarino?
37. Introdução ao Neo4J
❑ Quais clientes compraram produtos comuns aos comprados por Bruno?
38. Introdução ao Neo4J
❑ Quais clientes compraram produtos comuns aos comprados por Fernanda?
Resposta em uma lista de afinidades (os 5+):
39. Introdução ao Neo4J
❑ Demonstrando o resultado anterior para o cliente com maior afinidade:
40. Todas as perguntas foram respondidas
com 2 linhas de código, no MySQL
deveríamos utilizar combinações de JOIN,
o que levaria a códigos maiores e 30
vezes mais lentos.
48. Utilizando Neo4J com R
PROPRIEDADES IMPORTANTES
❑ Graus dos Nós é uma medida de centralidade do Grafo, sendo definido pela quantidade
de ligações (relações) conectadas a cada Nó.
❑ Proximidade dos Nós é uma medida de centralidade do Grafo, sendo definida pelo
inverso da soma das distâncias de um Nó referência a todos os outros.
❑ Intermediação dos Nós é uma medida de centralidade do Grafo, sendo definida pela
razão entre o número de caminhos mais curtos que passam por um Nó referente e o
número total de caminhos mais curtos do Grafo.
❑ PageRank é um valor definido por um algoritmo do Google que mede a importância de
um Nó contabilizando a quantidade e qualidade de ligações (relações) apontando para
este. Forma-se então uma lista com estes valores para cada Nó.
50. Bibliotecas de R para Engenheiros de Produção:
Forecast – Previsão de séries temporais.
Rglpk – API para o software de programação linear GLPK.
Simmer – Simulação de filas e sistemas discretos.
GA – Optimização de sistemas não lineares com algoritmo genético.
GameTheory – Tomadas de decisão utilizando a teoria dos jogos.
rDEA – Análise Envoltória de Dados para determinar benchmark.
Neuralnet – Redes neurais simples, para inteligência artificial.
SCPerf – Biblioteca para auxiliar no controle de estoque e cadeias de
suprimento.
Explore mais no sites:
https://cran.r-project.org/
https://www.r-bloggers.com/