Graph DatabaseSoluções na literatura e implementações disponíveis para
melhorar a performace na manipulação de redes complexas
José Alexandre Macedo
O que são redes complexas?
O que são redes complexas?
• Relacionamentos tão (ou mais)
importantes que os próprios
dados
• Geralmente compostas de
MUITOS dados
Quais as aplicações?
• Redes Sociais
Quais as aplicações?
• Redes de Informação
Quais as aplicações?
• Redes tecnológicas
Quais as aplicações?
• Redes biológicas
Manipulação de dados nas redes complexas
Banco de Dados
TradicionalGargalo
Manipulação de dados nas redes complexas
Manipulação de dados nas redes complexas
BALEIOU!
Qual a solução?
Graph Database!
Características dos Modelos de Graph Database
• Fundamentação baseada nas definições matemáticas de grafos
Características dos Modelos de Graph Database
• Componentes básicos– Estrutura de dados– Linguagem de transformação– Restrições de integridade
Vantagens do Graph Database
• Modelagem mais natural
• Consultas aproveitando a
estrutura dos grafos
• Maior nível de abstração
• Algoritmos de grafos para
operações específicas
• Exemplo de utilização– Redes Sociais
Graph Database + Redes Complexas
EU
João
Através de que pessoas eu conheço o João?ou seja,
Qual o caminho mínimo até João
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
Estado da Arte
(Angles, R. & Gutierrez, C. 2008)
Implementações de Graph Databases
Modelo Instância Ferramenta
Implementações de Graph Databases
Implementações de Graph Databases
Implementações Graph Model Linguagem Transações Algoritmos Licença
Neo4J Property-Graph Java ACID
Caminho mínimoTodos os caminhos
Todos os caminhos simplesDijkstra
A*
AGPLv3 Open Source
OrientDB Property-Graph Java ACID, MVCC N/A Apache 2.0
DEX Labeled and directed attributed multigraph Java, C++ ACID Parcial (consistência e
isolamento)
SinglePairShortestPathBFS,SinglePairShortestPathDijkstra,
TraversalBFS, TraversalDFS, WeakConnectivityDFS,
StrongConnectivityGabow
ComunidadePessoal
Academica
InfoGrid dynamically typed, object-oriented graph Java N/A N/A AGPLv3 Open Source
Comercial
HyperGraphDBObject-oriented multi-
relational labeled hypergraph
Java N/A
A*Bellman Ford
DijkstraFloyd Warshall
hasCyclesJohnsonKruskall
Prim
LGPL
InfiniteGraph Labelled directed multigraph Java Via Objectivity/DB N/A Comercial
SonesObject-oriented
Property-Graph with a simple Node-Ontology
C# N/A N/AAGPLv3
ComercialSaaS/DaaS
Na prática qual é ganho?
Na prática qual é ganho?
Vicknair, C. et al. (2010)
Na prática qual é ganho?
Vicknair, C. et al. (2010)
Graph databaseTamanho de 1,25 a 2 vezes maior!
Na prática qual é ganho?
Vicknair, C. et al. (2010)
Na prática qual é ganho?
Vicknair, C. et al. (2010)
Graph databaseAlgumas vezes 10x mais rápido!
Conclusão
• Graph databases são adequados para redes complexas
• A melhor implementação depende das características do problema
• Persistência poliglota pode ser a solução
Dúvidas
?
Referências• ANGLES, R. & GUTIERREZ, C. Survey of graph database models. ACM Comput. Surv., 40(1):1–
39, 2008.• VICKNAIR, C. et al. A Comparison of a Graph Database and a Relational Database. ACMSE
’10, Oxford, MS, USA, 2010.• IMPLEMENTAÇÕES GRAPH DATABASES. Acessado em: 27/06/2011
ww.graph-database.org/implementations/• ALGORITMOS DO NEO4J. Acessado em: 28/06/2011
http://docs.neo4j.org/chunked/stable/graph-algo.html• ALGORITMOS DO DEX. Acessado em: 28/06/2011
http://sparsity-technologies.com/downloads/javadoc.pdf• ALGORITMOS DO HYPERGRAPHDB. Acessado em: 28/06/2011
http://www.hypergraphdb.org/docs/javadoc/org/hypergraphdb/algorithms/GraphClassics.html
Top Related