2. Jhonathan S. Soares
• MongoDB Evangelist
• MVP Microsoft – Visual Studio
• Neo4j Top 50 Certified Developer
• 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
• 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)
8. Instalação e Configuração
• Plataformas suportadas
• Windows
• Linux/Unix
• Mac OSX
• Versões
• Community Edition
• Enterprise Edition
9. 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
10. Aplicações e Usos
• Fraud Detection
• Real-time recommendations
• Social network
• Identity and access management
• Network ant IT operations
11. 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.
12. 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
15. Hora do Demo
• Preparando o Neo4j
• :play movies
• MATCH (tom {name: "Tom Hanks"}) RETURN tom
• MATCH (n:Movie) RETURN n LIMIT 25
• CREATE (Jhonathan:Person {name:'Jhonathan Soares', born:1990}) MATCH
(p:Person {name:'Jhonathan Soares'}), (m:Movie {title:'The Matrix'})
• CREATE (p)-[:ACTED_IN {roles:['Figurant']}]->(m)
• MATCH (jhonathan:Person { name:'Jhonathan Soares' }),(keanu:Person {
name: 'Keanu Reeves' }), p = shortestPath((jhonathan)-[*..15]-(keanu))
RETURN p
16. Hora do Demo
• Match
• Limit
• Insert
• Shortestpath
• :play query template
• :play sysinfo
• :config
17. Hora do Demo
• Stack
• Neo4j Bolt JavaScript Driver
• Neo4j Community
• Frontend: ES6, jquery, bootstrap, d3.js
• Webpack for building web assets
Github: https://github.com/jhomarolo/movies-javascript-bolt
• npm install
• npm run dev
• http://localhost:8080/webpack-dev-server/