SlideShare uma empresa Scribd logo
1 de 29
Conhecendo Graph
databases com Neo4j
Cleber Beal Pizzato
Conhecendo Graph Databases
▪ Como eu conheci Graph
databases?
▪ Keynote:The Panama Papers,
Graphs and Data Science:
Unravelling the ShadyWorld of
Offshore Finance One Data
Structure at aTime
▪ JimWebber
http://jimwebber.org/
Ponto Chave do Keynote
Ponto Chave do Keynote
Conceitos Importantes de Graph Databases
▪ Um banco de dados que armazena relacionamentos e os trata como
ponto principal do seu modelo de dados.
▪ No caso do Neo4j, utiliza-se do Labeled Property Graph Model para
representar e construir seu modelo de dados.
▪ Possui uma regra primordial em seu núcleo que impede
relacionamentos quebrados.
Labeled Property Graph Model
• Entidades
conectadas (nodos)
• Tags de identificação
(rótulos)
• Conexões entre
nodos
(relacionamentos)
• Nodos e
relacionamentos
podem ter um
conjunto de chave-
valor (propriedades)
Labeled Property Graph Model
Labeled Property Graph Model
RDBMS x Neo4j Graph Database
Tendo o relacionamento
como ponto principal não
requer de estruturas
auxiliares como chaves
estrangeiras (RDBMS)
para navegar entre os
relacionamentos.
Outros NoSQL x Neo4j Graph Database
Comparado a alguns
outros bancos de dados
NoSQL sua estrutura de
relacionamentos traz
garantias transacionais
que protegem a
atualização desses dados
conforme padrões ACID.
Modelagem de Dados
▪ É mais um processo de negócio do que um processo tecnológico.
▪ É um processo de estruturação e abstração dos dados de um
contexto.
▪ É como contar uma história do que sua aplicação pretende fazer, com
as necessidades do negócio e dos usuários em uma estrutura para
armazenar e organizar os dados.
Modelagem de dados para Graph Databases
Está difícil pensar assim?
Modelagem de dados para Graph Databases
Que tal começarmos por aqui...
Modelagem de dados para Graph Databases
Aplicando algumas dicas básicas...
1. Cada tabela de entidade é
representada por um rótulo em
um dos nós.
Modelagem de dados para Graph Databases
Aplicando algumas dicas básicas...
2. Cada linha em uma tabela de
entidade é um nó.
Modelagem de dados para Graph Databases
Aplicando algumas dicas básicas...
3. As colunas dessas tabelas
tornam-se propriedades do nó.
Modelagem de dados para Graph Databases
Aplicando algumas dicas básicas...
4. As tabelas de associação são
transformadas em
relacionamentos, as colunas
dessas tabelas se tornam
propriedades de relacionamento.
Modelagem de dados para Graph Databases
... Chegamos no modelo.
Apresentando Neo4j
▪ Um banco de dados de grafos nativo.
▪ Construído de forma otimizada para armazenar grafos e percorrer os
relacionamentos entre eles.
▪ Possui Cypher, uma linguagem de consulta projetada
especificamente para manipular dados de grafos conectados.
▪ Suporta .Net, Java, JavaScript and Python através de drivers oficiais.
Aplicando Graph Databases com Neo4j
O modelo de dados relacional...
Aplicando Graph Databases com Neo4j
Complicando o modelo...
Aplicando Graph Databases com Neo4j
Complicando mais um pouco, agora com uma tabela de associação ...
Aplicando Graph Databases com Neo4j
Revisando as dicas...
1. Cada tabela de entidade é
representada por um rótulo em
um dos nós. :Node :Account
:Organogram :Contract
Aplicando Graph Databases com Neo4j
Revisando as dicas...
2. Cada linha em uma tabela de
entidade é um nó.
Aplicando Graph Databases com Neo4j
Revisando as dicas...
3. As colunas dessas tabelas
tornam-se propriedades do nó. :Node
• Type
• Name
• CreatedOn
:Account
• Name
:Organogram
• Name
• CreatedBy
• CreatedOn
:Contract
• SerialNumber
• ContracCode
• EndDate
Aplicando Graph Databases com Neo4j
Revisando as dicas...
4. As tabelas de associação são
transformadas em
relacionamentos, as colunas
dessas tabelas se tornam
propriedades de relacionamento.
Aplicando Graph Databases com Neo4j
... Iniciamos o modelo. Um modelo pode estar em constante evolução.
Aplicando Graph Databases com Neo4j
Utilizando Neo4j com um pouco da linguagem Cypher.
Referências
• Website: https://neo4j.com/
• Apresentação:The Panama Papers, Graphs and Data Science:
Unravelling the ShadyWorld of Offshore Finance One Data Structure
at aTime
• Apresentação: Billions and billions: using large-scale graph
databases to detect financial fraud in real time

Mais conteúdo relacionado

Semelhante a Conhecendo graph databases com neo4j

Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Mozart Dornelles Claret
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
essa
 
Access diapositivos aula nº 1 e 2
Access diapositivos aula nº 1 e 2Access diapositivos aula nº 1 e 2
Access diapositivos aula nº 1 e 2
Filipa Cordeiro
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
rosimaracorsino
 

Semelhante a Conhecendo graph databases com neo4j (20)

Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel Brandão
 
Data WareHOuse
Data WareHOuseData WareHOuse
Data WareHOuse
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
Banco de Dados - Aula 02
Banco de Dados - Aula 02Banco de Dados - Aula 02
Banco de Dados - Aula 02
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Slide da aula 04
Slide da aula 04Slide da aula 04
Slide da aula 04
 
Banco de Dados 01 - Semana 01
Banco de Dados 01 - Semana 01Banco de Dados 01 - Semana 01
Banco de Dados 01 - Semana 01
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
2019-2 - BD I - Aula 01 C - Introdução a Banco de Dados
2019-2 - BD I - Aula 01 C - Introdução a Banco de Dados2019-2 - BD I - Aula 01 C - Introdução a Banco de Dados
2019-2 - BD I - Aula 01 C - Introdução a Banco de Dados
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
 
Sistemas de Informação - Aula05 - cap5 bd e business intelligence
Sistemas de Informação - Aula05 - cap5 bd e business intelligenceSistemas de Informação - Aula05 - cap5 bd e business intelligence
Sistemas de Informação - Aula05 - cap5 bd e business intelligence
 
Access diapositivos aula nº 1 e 2
Access diapositivos aula nº 1 e 2Access diapositivos aula nº 1 e 2
Access diapositivos aula nº 1 e 2
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
Introdução a modelagem de dados parte II - Banco de Dados
Introdução a modelagem de dados parte II - Banco de DadosIntrodução a modelagem de dados parte II - Banco de Dados
Introdução a modelagem de dados parte II - Banco de Dados
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
 

Conhecendo graph databases com neo4j

  • 1. Conhecendo Graph databases com Neo4j Cleber Beal Pizzato
  • 2. Conhecendo Graph Databases ▪ Como eu conheci Graph databases? ▪ Keynote:The Panama Papers, Graphs and Data Science: Unravelling the ShadyWorld of Offshore Finance One Data Structure at aTime ▪ JimWebber http://jimwebber.org/
  • 3. Ponto Chave do Keynote
  • 4. Ponto Chave do Keynote
  • 5. Conceitos Importantes de Graph Databases ▪ Um banco de dados que armazena relacionamentos e os trata como ponto principal do seu modelo de dados. ▪ No caso do Neo4j, utiliza-se do Labeled Property Graph Model para representar e construir seu modelo de dados. ▪ Possui uma regra primordial em seu núcleo que impede relacionamentos quebrados.
  • 6. Labeled Property Graph Model • Entidades conectadas (nodos) • Tags de identificação (rótulos) • Conexões entre nodos (relacionamentos) • Nodos e relacionamentos podem ter um conjunto de chave- valor (propriedades)
  • 9. RDBMS x Neo4j Graph Database Tendo o relacionamento como ponto principal não requer de estruturas auxiliares como chaves estrangeiras (RDBMS) para navegar entre os relacionamentos.
  • 10. Outros NoSQL x Neo4j Graph Database Comparado a alguns outros bancos de dados NoSQL sua estrutura de relacionamentos traz garantias transacionais que protegem a atualização desses dados conforme padrões ACID.
  • 11. Modelagem de Dados ▪ É mais um processo de negócio do que um processo tecnológico. ▪ É um processo de estruturação e abstração dos dados de um contexto. ▪ É como contar uma história do que sua aplicação pretende fazer, com as necessidades do negócio e dos usuários em uma estrutura para armazenar e organizar os dados.
  • 12. Modelagem de dados para Graph Databases Está difícil pensar assim?
  • 13. Modelagem de dados para Graph Databases Que tal começarmos por aqui...
  • 14. Modelagem de dados para Graph Databases Aplicando algumas dicas básicas... 1. Cada tabela de entidade é representada por um rótulo em um dos nós.
  • 15. Modelagem de dados para Graph Databases Aplicando algumas dicas básicas... 2. Cada linha em uma tabela de entidade é um nó.
  • 16. Modelagem de dados para Graph Databases Aplicando algumas dicas básicas... 3. As colunas dessas tabelas tornam-se propriedades do nó.
  • 17. Modelagem de dados para Graph Databases Aplicando algumas dicas básicas... 4. As tabelas de associação são transformadas em relacionamentos, as colunas dessas tabelas se tornam propriedades de relacionamento.
  • 18. Modelagem de dados para Graph Databases ... Chegamos no modelo.
  • 19. Apresentando Neo4j ▪ Um banco de dados de grafos nativo. ▪ Construído de forma otimizada para armazenar grafos e percorrer os relacionamentos entre eles. ▪ Possui Cypher, uma linguagem de consulta projetada especificamente para manipular dados de grafos conectados. ▪ Suporta .Net, Java, JavaScript and Python através de drivers oficiais.
  • 20. Aplicando Graph Databases com Neo4j O modelo de dados relacional...
  • 21. Aplicando Graph Databases com Neo4j Complicando o modelo...
  • 22. Aplicando Graph Databases com Neo4j Complicando mais um pouco, agora com uma tabela de associação ...
  • 23. Aplicando Graph Databases com Neo4j Revisando as dicas... 1. Cada tabela de entidade é representada por um rótulo em um dos nós. :Node :Account :Organogram :Contract
  • 24. Aplicando Graph Databases com Neo4j Revisando as dicas... 2. Cada linha em uma tabela de entidade é um nó.
  • 25. Aplicando Graph Databases com Neo4j Revisando as dicas... 3. As colunas dessas tabelas tornam-se propriedades do nó. :Node • Type • Name • CreatedOn :Account • Name :Organogram • Name • CreatedBy • CreatedOn :Contract • SerialNumber • ContracCode • EndDate
  • 26. Aplicando Graph Databases com Neo4j Revisando as dicas... 4. As tabelas de associação são transformadas em relacionamentos, as colunas dessas tabelas se tornam propriedades de relacionamento.
  • 27. Aplicando Graph Databases com Neo4j ... Iniciamos o modelo. Um modelo pode estar em constante evolução.
  • 28. Aplicando Graph Databases com Neo4j Utilizando Neo4j com um pouco da linguagem Cypher.
  • 29. Referências • Website: https://neo4j.com/ • Apresentação:The Panama Papers, Graphs and Data Science: Unravelling the ShadyWorld of Offshore Finance One Data Structure at aTime • Apresentação: Billions and billions: using large-scale graph databases to detect financial fraud in real time

Notas do Editor

  1. Breve apresentação sobre mim
  2. Sobre Jim Webber: cientista chefe da Neo Technology, empresa responsável pelo Neo4j. Foi um dos principais arquitetos de software a nível global da ThoughtWorks, escreveu uma série de livros que incluem por exemplo ’REST in Practice’ and ‘Graph Databases’. Sobre Keynote: Panama Papers foi o maior vazamento mundial de dados de offshore - expuseram 2.6 terabytes em 11,5 milhões de arquivos que abrangem 40 anos de registros em mais de 210 empresas. Foram divulgados dados sobre milhares de bancos e grandes políticos mundiais, e o vazamento levou a mais de 150 investigações em 79 países, muitos deles em andamento.
  3. Vivemos em um mundo conectado. Não há informações isoladas, mas ricos, domínios conectados ao nosso redor. Apenas um banco de dados que abraça relacionamentos como um aspecto central do seu modelo de dados é capaz de armazenar, processar e consultar conexões de forma eficiente.
  4. Atômico: Todas as operações de uma transação são bem-sucedidas ou todas as operações são revertidas. Consistente: Na conclusão de uma transação, o banco de dados é estruturalmente sólido. Isolado: As transações não contêm um com o outro. O acesso contencioso aos dados é moderado pelo banco de dados para que as transações parecem ser executadas sequencialmente. Durável: Os resultados da aplicação de uma transação são permanentes, mesmo na presença de falhas. Disponibilidade básica (BA): O banco de dados parece funcionar na maioria das vezes. Soft-state (S): Gravações não precisam ter consistência de escrita, nem as réplicas diferentes devem ser mutuamente consistentes o tempo todo. Consistência eventual (E): As gravações só precisam ser consistentes em algum ponto posterior (por exemplo, em tempo de leitura).
  5. Apresentar interface e projetos de exemplo do Neo4j