Você está na página 1de 22

Introdução ao Neo4j

– 3.x

(graphs)[:ARE]›(everywhere)
Jhonathan S. Soares

 Bacharel Ciência da Computação

 Pós Graduado em Arquitetura de Software

 MBA em Gestão de TI

 Most Valuable Professional (MVP) Microsoft

 Neo4j Top 50 World Certified

 MongoDB Evangelist e Advocate Hub

 Scrum Master PSM

 Criador do blog CodigoSimples.net


Introdução ao Neo4j

• Tipos de NOSQL
• Já somos 255 e crescendo \o/
• Colunar | Wide Column | Column Families
• Hadoop – Hbase – Cassandra – BigTable
• Orientado à Documentos| Document Store
• ElasticSearch – OrientDB – MongoDB - DocumentDB
• Chave Valor | Tuple Store | Key Value
• DynamoDB – Azure Table – Redis - MemcacheDB
• Orientado à Grafos | Graph Databases
• Neo4j – ArangoDB – OrientDB - Titan
Introdução ao Neo4j

• Graph Databases
• Somos diferentes?
• Só você
• Just you
• Diferentão
• Vanguardista
• Pica das galáxias

• Está diretamente relacionado a um modelo


de dados estabelecido, o modelo de grafos.
Introdução ao Neo4j
• Graph Databases
• Representar os dados e / ou o esquema dos dados como
grafos dirigidos.
Introdução ao Neo4j
• Dijkstra
• Lei do menor caminho ou caminho com menor peso.
Introdução ao Neo4j
• Graph Databases
• Porém, por meio dos relacionamentos
inerentes aos grafos, estas consultas tornam-se mais
simples e diretas.
Introdução ao Neo4j

 Neo4j é feito do que?


 Nós, Labels, Relacionamentos e Propriedades

 Nós são os registros


 Labels são conjunto agrupado de nós
 Relacionamentos são as conexões entre os nós
 Propriedades são definições de um nós ( Direção, Agrupamento
etc)
O banco de dados orientado
à grafos mais utilizado no mundo.

Sistemas de Sistemas de
Sistemas de rotas
recomendação análise de impacto
Aplicações e Usos

 Fraud Detection
 Real-time recommendations
 Social network
 Identity and access management
 Network ant IT operations
Instalação e Configuração

 Plataformas suportadas
 Windows
 Linux/Unix
 Mac OSX

 Versões
 Community Edition
 Enterprise Edition
Introdução à Cypher Query

 Conceitos
 Cypher é uma linguagem declarativa, de inspiração SQL para descrever padrões em
gráficos utilizando uma sintaxe ascii-art.
 Ela nos permite selecionar, inserir, atualizar ou excluir dados do gráfico sem a
necessidade de descrever exatamente como fazê-lo.
Introdução à Cypher Query

 Conceitos
 MATCH (p:pessoa{idade: 25}) RETURN p
• MATCH é o nosso comando de seleção
• p:pessoa é o nosso conjunto de dados
• {idade:25} é o nosso where
• return p é quais registros eu quero que retorne
Introdução à Cypher Query

 Conceitos
 MATCH (p:pessoa{idade: 25}) RETURN p
 SELECT * FROM Pessoa WHERE idade = 25
Introdução à Cypher Query
 Nós
 São os registros

 Labels
 São os conjuntos agrupados de nós

 Relacionamentos
 São as conexões entre nós

 Propriedades
 São as definições de um nó ou Relacionamento
 Direção
 Agrupamento
 Campos de informações
Linguagens de programação

 Neo4j se integra nativamente com:


 Java
 C#
 Python
 Ruby
 Javascript
 PHP
 Go*
 Restful API
 Exemplo com c# : github.com/Readify/Neo4jClient/wiki/cypher-
examples
Hora do Demo
Hora do Demo

 Instalação Windows

 https://neo4j.com/download/community-edition/

 Instalação Linux*

 https://codigosimples.net/2017/04/08/criando-um-servidor-de-neo4j-desde-o-
inicio-no-linux/

 :play movie-graph
Hora do Demo

 Match
 Limit
 Insert
 Shortestpath
 Execution Plan
 WebAdmin
 Features “Escondidas”
Features “Escondidas”

 :play query template


 :play sysinfo
 :config
 EXPLAIN + query
 PROFILE + query
Dúvidas?

(graphs)[:ARE]›(everywhere)
FIM!

codigosimples.net
@jhomarolo
facebook.com/jhonathanmarolo
www.linkedin.com/in/jhonathansouza/

Você também pode gostar