O documento compara os principais modelos de bancos de dados em grafos, analisando suas funcionalidades de armazenamento, manipulação e consultas. Os modelos estudados incluem Neo4j, AllegroGraph e VertexDB. O artigo conclui que a maioria oferece suporte a estruturas de grafos e consultas básicas, mas falta um padrão para linguagens de definição e manipulação de dados em grafos.
1. CMP151 - Modelos Avançados de Bancos de Dados
A Comparison of Current
Graph Database Models
Renzo Angles
Department of Computer Science, Engineering Faculty, Universidad de Talca, Chile
ICDE Workshops 2012
Felipe Giacomel
Jose Lozano
2. 2/47
Divisão do Trabalho
I. Apresentação do Conteúdo do Artigo
II.Análise Crítica do Conteúdo do Artigo
III.Avaliação da Publicação
3. 3/47
Introdução
● BDs relacionais não atendem a todos os requisitos
● Novas tecnologias
– Wide column stores (Big data)
– Document stores (dados semi-estruturados)
– Key-value stores
– Graph databases
4. 4/47
Graph Databases
● Áreas de interesse:
– Química
– Biologia
– Web Mining
– Web semântica
● As relações são (no mínimo) tão importantes quanto as
entidades
● A existência de uma ferramenta para tratar este tipo de
problema é cada vez mais necessária!
5. 5/47
Objetivos do artigo
● Comparar os Graph Databases existentes, focando as
funcionalidades referentes a modelo de dados:
– Estruturas de dados;
– Interface para consultas;
– Restrições de integridade;
– Capacidade de realizar consultas em grafos;
6. 6/47
Bancos de dados pesquisados
● Foram estudados apenas os BDs que oferecem:
– Interface com o usuário ou API
– Linguagens DDL e DML
– Otimização de consultas
– Engine de banco de dados
– Engine de armazenamento
– Suporte a transações
– Outras operações (backup, recuperação, tuning, etc.)
7. 7/47
Bancos de dados pesquisados
● AllegroGraph
● DEX
● Filamemt
● G-Store
● HyperGraph
Foram escolhidos os seguintes bancos de dados
● InfiniteGraph
● Neo4j
● Sones
● VertexDB
10. 10/47
Comparação entre os modelos
1.Armazenamento de dados
2.Funções de operação e manipulação
3.Estruturas de grafos presentes
4.Representação de entidades e relações
5.Suporte a consultas
6.Restrições de integridade
7.Queries essenciais
13. 13/47
Comparação entre os modelos
1.Armazenamento de dados
2.Funções de operação e manipulação
3.Estruturas de grafos presentes
4.Representação de entidades e relações
5.Suporte a consultas
6.Restrições de integridade
7.Queries essenciais
14. 14/47
Funções de operação e manipulação
● DDL: linguagem de definição de dados
● DML: linguagem de manipulação de dados
● Linguagem de consulta
● API
● GUI
19. 19/47
Comparação entre os modelos
1.Armazenamento de dados
2.Funções de operação e manipulação
3.Estruturas de grafos presentes
4.Representação de entidades e relações
5.Suporte a consultas
6.Restrições de integridade
7.Queries essenciais
20. 20/47
Estruturas de grafos presentes
● Grafos
– Grafos simples
– Hipergrafos
– Grafos alinhados
– Grafos com atributos
● Nodos
– Rótulos nos nodos
– Atribuição de nodos
● Arestas
– Direcionadas
– Rótulos nas arestas
– Atribuição de arestas
22. 22/47
Comparação entre os modelos
1.Armazenamento de dados
2.Funções de operação e manipulação
3.Estruturas de grafos presentes
4.Representação de entidades e relações
5.Suporte a consultas
6.Restrições de integridade
7.Queries essenciais
25. 25/47
Comparação entre os modelos
1.Armazenamento de dados
2.Funções de operação e manipulação
3.Estruturas de grafos presentes
4.Representação de entidades e relações
5.Suporte a consultas
6.Restrições de integridade
7.Queries essenciais
26. 26/47
Suporte a consultas
● Tipo
– Linguagem de consulta
– API
– Linguagem de consulta
gráfica
● Uso
– Recuperação
– Raciocínio
– Análise
30. 30/47
Comparação entre os modelos
1.Armazenamento de dados
2.Funções de operação e manipulação
3.Estruturas de grafos presentes
4.Representação de entidades e relações
5.Suporte a consultas
6.Restrições de integridade
7.Queries essenciais
31. 31/47
Restrições de integridade
● Verificação de tipos
● Identidade de nodos/arestas
● Integridade referencial
● Verificação da cardinalidade
● Dependência funcional
● Restrições de padrão de grafos
33. 33/47
Comparação entre os modelos
1.Armazenamento de dados
2.Funções de operação e manipulação
3.Estruturas de grafos presentes
4.Representação de entidades e relações
5.Suporte a consultas
6.Restrições de integridade
7.Queries essenciais
34. 34/47
Queries essenciais
● Adjacência
– Entre nodos/vértices
– K-vizinhança
● Outros
– Reconhecimento de
padrões
– Sumarização
● Alcançabilidade
– Caminhos de
comprimento fixo
– Caminhos simples
– Caminho mais curto
37. 37/47
Conclusão do Artigo
● A maioria dos modelos pesquisados fornecem suporte a:
– Diferentes estruturas de grafos
– Consultas (na forma de APIs)
– Noções básicas de integridade
● Apenas alguns permitem consultas com queries
● Falta a definição de uma linguagem padrão para
operações DDL e DML em grafos
38. 38/47
Divisão do Trabalho
I. Apresentação do Conteúdo do Artigo
II.Análise Crítica do Conteúdo do Artigo
III.Avaliação da Publicação
39. 39/47
Análise Crítica
● O artigo traz à tona um tema pouco explorado, apesar de
interessante;
● O foco nas funcionalidades dos SGBDs para grafos;
● Apresenta os produtos mais conhecidos disponíveis;
● Menciona a falta de um padrão para linguagens de
consulta em grafos.
40. 40/47
Análise Crítica
● Aspectos positivos do artigo:
– Boa organização dos conceitos estudados, através de
quadros comparativos;
– Grande número de comparações feitas;
– Os conceitos comparados são descritos de forma
objetiva, facilitando a comparação por parte do leitor.
41. 41/47
Análise Crítica
● Aspectos negativos do artigo:
– Muito teórico - não apresenta exemplos práticos (no
caso de consultas, por exemplo);
– Não possui contribuição cientifica, pois o objetivo do
artigo é a comparação entre os BDs existentes;
– Existem bancos de dados (alguns pagos) que não
entraram no estudo e nem foram mencionados.
● Graph Database, Titan, Oracle
42. 42/47
Análise Crítica
● Sugestões para melhorar o artigo:
– Usar níveis de avaliação, ao invés de sim/não;
– Na conclusão, escrever uma opinião sobre qual (ou
quais) aplicações são as recomendadas;
– Avaliar o suporte ao usuário (ajuda, fóruns, etc);
43. 43/47
Divisão do Trabalho
I. Apresentação do Conteúdo do Artigo
II.Análise Crítica do Conteúdo do Artigo
III.Avaliação da Publicação
45. 45/47
Avaliação da Publicação
● Avaliação dos autores
– Para avaliar o G-Index, usamos a fórmula:
Segundo Scopus:
● G-Index: 1,53
● H-Index: 3
(g = maior numero de citações de um artigo)
46. 46/47
Avaliação da Publicação
● Número de citações do artigo
– Segundo Google Scholar, 4 referências
● Publicações anteriores dos mesmos autores