![Page 1: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/1.jpg)
Graph DatabaseSoluções na literatura e implementações disponíveis para
melhorar a performace na manipulação de redes complexas
José Alexandre Macedo
![Page 2: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/2.jpg)
O que são redes complexas?
![Page 3: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/3.jpg)
O que são redes complexas?
• Relacionamentos tão (ou mais)
importantes que os próprios
dados
• Geralmente compostas de
MUITOS dados
![Page 4: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/4.jpg)
Quais as aplicações?
• Redes Sociais
![Page 5: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/5.jpg)
Quais as aplicações?
• Redes de Informação
![Page 6: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/6.jpg)
Quais as aplicações?
• Redes tecnológicas
![Page 7: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/7.jpg)
Quais as aplicações?
• Redes biológicas
![Page 8: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/8.jpg)
Manipulação de dados nas redes complexas
Banco de Dados
TradicionalGargalo
![Page 9: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/9.jpg)
Manipulação de dados nas redes complexas
![Page 10: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/10.jpg)
Manipulação de dados nas redes complexas
BALEIOU!
![Page 11: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/11.jpg)
Qual a solução?
![Page 12: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/12.jpg)
Graph Database!
![Page 13: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/13.jpg)
Características dos Modelos de Graph Database
• Fundamentação baseada nas definições matemáticas de grafos
![Page 14: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/14.jpg)
Características dos Modelos de Graph Database
• Componentes básicos– Estrutura de dados– Linguagem de transformação– Restrições de integridade
![Page 15: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/15.jpg)
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
![Page 16: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/16.jpg)
• 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
![Page 17: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/17.jpg)
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
![Page 18: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/18.jpg)
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
![Page 19: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/19.jpg)
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
![Page 20: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/20.jpg)
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
![Page 21: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/21.jpg)
Graph Database + Redes Complexas
• Exemplo de utilização– Redes Sociais
EU
João
![Page 22: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/22.jpg)
Estado da Arte
(Angles, R. & Gutierrez, C. 2008)
![Page 23: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/23.jpg)
Implementações de Graph Databases
Modelo Instância Ferramenta
![Page 24: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/24.jpg)
Implementações de Graph Databases
![Page 25: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/25.jpg)
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
![Page 26: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/26.jpg)
Na prática qual é ganho?
![Page 27: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/27.jpg)
Na prática qual é ganho?
Vicknair, C. et al. (2010)
![Page 28: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/28.jpg)
Na prática qual é ganho?
Vicknair, C. et al. (2010)
Graph databaseTamanho de 1,25 a 2 vezes maior!
![Page 29: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/29.jpg)
Na prática qual é ganho?
Vicknair, C. et al. (2010)
![Page 30: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/30.jpg)
Na prática qual é ganho?
Vicknair, C. et al. (2010)
Graph databaseAlgumas vezes 10x mais rápido!
![Page 31: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/31.jpg)
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
![Page 32: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/32.jpg)
Dúvidas
?
![Page 33: Graph database - Soluções na literatura e implementações disponíveis](https://reader034.vdocuments.site/reader034/viewer/2022052506/5579a040d8b42ac1148b475b/html5/thumbnails/33.jpg)
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