SlideShare une entreprise Scribd logo
1  sur  18
O QUE É NEO4J?
Neo4j é um banco de dados;
Neo4j é NoSQL;
Neo4j não é relacional;
Banco de dados
NoSQL
Não Relacional
QUÊ?
GRAFOS!
GRAFOS!
GRAFOS!
PROPERTY GRAPH
E COMO EU FAÇO UMA “QUERY”?
• Podemos escrever queries
manualmente em Cypher, que é
o equivalente a linguagem SQL
• Podemos usar a API do java e
fazer buscas e inserções através
de métodos
CYPHER
CREATE
(no1:TipoDoNo {chave:”valor”, chave2:”valor2”}),
(no2:TipoDoNo {chave:”valor”, chave2:”valor2”}),
(no1)-[:RELACIONAMENTO {chave: “valor”}]->(no2)
COMO ISSO É FEITO NO JAVA?
NeoService neo = ... // Get Factory
// Criando o “Neo”
Node anderson = neo.createNode();
anderson.setProperty( “nome”, “Thomas Anderson” );
anderson.setProperty( “idade”, 29 );
// Criando o Morpheus
Node morpheus = neo.createNode();
morpheus.setProperty( “nome”, “Morpheus” );
morpheus.setProperty( “rank”, “Capitão” );
morpheus.setProperty( “tags”, vetorDeStrings);
COMO ISSO É FEITO NO JAVA?
// Criando o Relacionamento dizendo
que Anderson conhece o Morpheus
anderson.createRelationshipTo(
morpheus, TiposRelacao.CONHECE);
CYPHER E SQL COMPARADOS
SELECT *
FROM “Pessoa"
WHERE idade = 25
MATCH
(p:pessoa{idade: 25})
RETURN p
UM POUCO MAIS COMPLEXO...
SELECT Planetas.*
FROM Planetas
INNER JOIN VisitouPlaneta ON Planeta.id = VisitouPlaneta.planeta_id
INNER JOIN Pessoa ON VisitouPlaneta.pessoa_id = Pessoa.id
WHERE Pessoa.nome = 'Anakin'
MATCH
(:pessoa{name:”Anakin”})-[:visitou]->(p)
RETURN p
Modelo Relacional Modelo em Grafos
DÚVIDAS?
OBRIGADO!
Vinicius Jorge Munhoz
contato@viniciusmunhoz.com
Lucas Diógenes Andrade
lucas91andrade@hotmail.com

Contenu connexe

En vedette (8)

Md7 banco dados
Md7 banco dadosMd7 banco dados
Md7 banco dados
 
Demonstrações
DemonstraçõesDemonstrações
Demonstrações
 
Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relações
 
Matemática Discreta - Parte III definicoes indutivas
Matemática Discreta - Parte III definicoes indutivasMatemática Discreta - Parte III definicoes indutivas
Matemática Discreta - Parte III definicoes indutivas
 
Matemática Discreta - Introdução
Matemática Discreta - IntroduçãoMatemática Discreta - Introdução
Matemática Discreta - Introdução
 
Matemática Discreta - Parte VI funções
Matemática Discreta - Parte VI funçõesMatemática Discreta - Parte VI funções
Matemática Discreta - Parte VI funções
 
57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos
 
Matemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosMatemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntos
 

Similaire à Introdução ao Neo4j

Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Zabbix BR
 
NoSQL for Search - Riak
NoSQL for Search - RiakNoSQL for Search - Riak
NoSQL for Search - Riak
Thiago Avelino
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
Joao Lucas Santana
 

Similaire à Introdução ao Neo4j (20)

TDC2016SP - Trilha NoSQL
TDC2016SP - Trilha NoSQLTDC2016SP - Trilha NoSQL
TDC2016SP - Trilha NoSQL
 
Migrando dados do SQL para Neo4j - TDC
Migrando dados do SQL para Neo4j  - TDCMigrando dados do SQL para Neo4j  - TDC
Migrando dados do SQL para Neo4j - TDC
 
Primeiros Passos com a API do Zabbix - 3 Meetup do Interior
Primeiros Passos com a API do Zabbix - 3 Meetup do InteriorPrimeiros Passos com a API do Zabbix - 3 Meetup do Interior
Primeiros Passos com a API do Zabbix - 3 Meetup do Interior
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
 
Introdução ao neo4j com c# e asp.net core
Introdução ao neo4j com c# e asp.net coreIntrodução ao neo4j com c# e asp.net core
Introdução ao neo4j com c# e asp.net core
 
NoSQL for Search - Riak
NoSQL for Search - RiakNoSQL for Search - Riak
NoSQL for Search - Riak
 
NOSQL_Uma_breve_introducao.pptx
NOSQL_Uma_breve_introducao.pptxNOSQL_Uma_breve_introducao.pptx
NOSQL_Uma_breve_introducao.pptx
 
Extração de informação no StackOverflow Careers
Extração de informação no StackOverflow CareersExtração de informação no StackOverflow Careers
Extração de informação no StackOverflow Careers
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
NOSQL uma breve introdução
NOSQL uma breve introduçãoNOSQL uma breve introdução
NOSQL uma breve introdução
 
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure SearchMVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
MVP Conf 2018 - Pesquisa e Indexação de Documento com Azure Search
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Identifique brechas, proteja sua aplicação | Php avenger e octopus
Identifique brechas, proteja sua aplicação | Php avenger e octopusIdentifique brechas, proteja sua aplicação | Php avenger e octopus
Identifique brechas, proteja sua aplicação | Php avenger e octopus
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
 
P566Aula10
P566Aula10P566Aula10
P566Aula10
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 
A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01
 
Mecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDBMecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDB
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Introdução ao Neo4j

  • 1.
  • 2. O QUE É NEO4J? Neo4j é um banco de dados; Neo4j é NoSQL; Neo4j não é relacional;
  • 3. Banco de dados NoSQL Não Relacional QUÊ?
  • 7.
  • 9. E COMO EU FAÇO UMA “QUERY”? • Podemos escrever queries manualmente em Cypher, que é o equivalente a linguagem SQL • Podemos usar a API do java e fazer buscas e inserções através de métodos
  • 10. CYPHER CREATE (no1:TipoDoNo {chave:”valor”, chave2:”valor2”}), (no2:TipoDoNo {chave:”valor”, chave2:”valor2”}), (no1)-[:RELACIONAMENTO {chave: “valor”}]->(no2)
  • 11. COMO ISSO É FEITO NO JAVA? NeoService neo = ... // Get Factory // Criando o “Neo” Node anderson = neo.createNode(); anderson.setProperty( “nome”, “Thomas Anderson” ); anderson.setProperty( “idade”, 29 ); // Criando o Morpheus Node morpheus = neo.createNode(); morpheus.setProperty( “nome”, “Morpheus” ); morpheus.setProperty( “rank”, “Capitão” ); morpheus.setProperty( “tags”, vetorDeStrings);
  • 12. COMO ISSO É FEITO NO JAVA? // Criando o Relacionamento dizendo que Anderson conhece o Morpheus anderson.createRelationshipTo( morpheus, TiposRelacao.CONHECE);
  • 13. CYPHER E SQL COMPARADOS SELECT * FROM “Pessoa" WHERE idade = 25 MATCH (p:pessoa{idade: 25}) RETURN p
  • 14. UM POUCO MAIS COMPLEXO... SELECT Planetas.* FROM Planetas INNER JOIN VisitouPlaneta ON Planeta.id = VisitouPlaneta.planeta_id INNER JOIN Pessoa ON VisitouPlaneta.pessoa_id = Pessoa.id WHERE Pessoa.nome = 'Anakin' MATCH (:pessoa{name:”Anakin”})-[:visitou]->(p) RETURN p
  • 16.
  • 18. OBRIGADO! Vinicius Jorge Munhoz contato@viniciusmunhoz.com Lucas Diógenes Andrade lucas91andrade@hotmail.com