Introdução ao Neo4j

18
NEO4J THE GRA PH DATAB ASE

description

Apresentação realizada no curso de Análise e Desenvolvimento de Sistemas do IFSP São Carlos, na disciplina de Desenvolvimento Web 2.

Transcript of Introdução ao Neo4j

Page 1: Introdução ao Neo4j

NEO4J

TH

E G

RA

PH

DA

T AB

AS

E

Page 2: Introdução ao Neo4j

O QUE É NEO4J?

Neo4j é um banco de dados;

Neo4j é NoSQL;

Neo4j não é relacional;

Page 3: Introdução ao Neo4j

Banco de dadosNoSQL

Não Relacional

QUÊ?

Page 4: Introdução ao Neo4j

GRAFOS!

Page 5: Introdução ao Neo4j

GRAFOS!

Page 6: Introdução ao Neo4j

GRAFOS!

Page 7: Introdução ao Neo4j
Page 8: Introdução ao Neo4j

PROPERTY GRAPH

Page 9: Introdução ao Neo4j

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

Page 10: Introdução ao Neo4j

CYPHERCREATE

(no1:TipoDoNo {chave:”valor”, chave2:”valor2”}),

(no2:TipoDoNo {chave:”valor”, chave2:”valor2”}),

(no1)-[:RELACIONAMENTO {chave: “valor”}]->(no2)

Page 11: Introdução ao Neo4j

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 MorpheusNode morpheus = neo.createNode();morpheus.setProperty( “nome”, “Morpheus” );morpheus.setProperty( “rank”, “Capitão” );morpheus.setProperty( “tags”, vetorDeStrings);

Page 12: Introdução ao Neo4j

COMO ISSO É FEITO NO JAVA?

// Criando o Relacionamento dizendo que Anderson conhece o Morpheus

anderson.createRelationshipTo( morpheus, TiposRelacao.CONHECE);

Page 13: Introdução ao Neo4j

CYPHER E SQL COMPARADOSSELECT *

FROM “Pessoa"

WHERE idade = 25

MATCH

(p:pessoa{idade: 25})

RETURN p

Page 14: Introdução ao Neo4j

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

Page 15: Introdução ao Neo4j

Modelo Relacional Modelo em Grafos

Page 16: Introdução ao Neo4j
Page 17: Introdução ao Neo4j

DÚVIDAS?

Page 18: Introdução ao Neo4j

OBRIGADO!

Vinicius Jorge [email protected]

Lucas Diógenes [email protected]