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/
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.
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.
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.
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.
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
Breve apresentação sobre mim
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.
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.
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).
Apresentar interface e projetos de exemplo do Neo4j