Mais conteúdo relacionado
Introdução ao neo4j
- 2. Jhonathan S. Soares
• MVP Microsoft – Visual Studio
• Neo4j Certified Developer
• Criador do blog CodigoSimples.net
Leandro Domingues
• Neo4j Certified Developer
• SQL Server Specialist
• Criador do blog CodificandoSempre.com.br
- 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. Instalação e Configuração
• Plataformas suportadas
• Windows
• Linux/Unix
• Mac OSX
• Versões
• Community Edition
• Enterprise Edition
- 10. 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.
- 11. 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
- 12. Introdução à Cypher Query
• Conceitos
• MATCH (p:pessoa{idade: 25}) RETURN p
• SELECT * FROM Pessoa WHERE idade = 25
• MATCH (p:pessoa{name:’Anakin’})-[:visitou]->(p) RETURN p
• SELECT p.* FROM Planetas p INNER JOIN VisitouPlaneta v ON p.id =
v.planeta_id INNER JOIN Pessoa pe ON v.pessoa_id = pe.id WHERE pe.nome =
'Anakin'
- 13. Linguagens de programação
• Neo4j se integra nativamente com:
• Java
• C#
• Python
• Ruby
• Javascript
• PHP
• Exemplo com c# : github.com/Readify/Neo4jClient/wiki/cypher-examples
- 14. Linguagens de programação
Imagine a seguinte classe em c#:
public class User
{
public long Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
- 15. Linguagens de programação
Retornar todos usuários
Cypher:
MATCH (user:User)
RETURN user
C#:
graphClient.Cypher
.Match("(user:User)")
.Return(user => user.As<User>())
.Results
- 16. Linguagens de programação
Retornar usuário específico
Cypher:
MATCH (user:User)
WHERE user.Id = 1234
RETURN user
C#:
graphClient.Cypher
.Match("(user:User)")
.Where((User user) => user.Id ==
1234)
.Return(user => user.As<User>())
.Results
- 17. Aplicações e Usos
• Fraud Detection
• Real-time recommendations
• Social network
• Identity and access management
• Network ant IT operations
- 19. Hora do Demo
• Match
• Limit
• Insert
• Shortestpath
• Execution Plan
• WebAdmin
• Features “Escondidas”