Este documento apresenta uma introdução ao banco de dados orientado a grafos Neo4j. Ele discute os tipos de bancos de dados NoSQL, incluindo bancos de dados orientados a documentos, chave-valor e grafos. O documento também descreve os conceitos fundamentais do Neo4j, como nós, rótulos, relacionamentos e propriedades, e apresenta demonstrações práticas do Neo4j.
2. 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
3. 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
4. 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.
5. Introdução ao Neo4j
• Graph Databases
• Representar os dados e / ou o esquema dos dados como
grafos dirigidos.
7. Introdução ao Neo4j
• Graph Databases
• Porém, por meio dos relacionamentos
inerentes aos grafos, estas consultas tornam-se mais
simples e diretas.
8. 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)
9. O banco de dados orientado
à grafos mais utilizado no mundo.
Sistemas de rotas
Sistemas de
recomendação
Sistemas de
análise de impacto
10. Aplicações e Usos
Fraud Detection
Real-time recommendations
Social network
Identity and access management
Network ant IT operations
11. Instalação e Configuração
Plataformas suportadas
Windows
Linux/Unix
Mac OSX
Versões
Community Edition
Enterprise Edition
12. 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.
13. 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
14. Introdução à Cypher Query
Conceitos
MATCH (p:pessoa{idade: 25}) RETURN p
SELECT * FROM Pessoa WHERE idade = 25
15. 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
16. 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