Comparison

47
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

Transcript of Comparison

Page 1: Comparison

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

Page 2: Comparison

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

Page 3: Comparison

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

Page 4: Comparison

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!

Page 5: Comparison

5/47

Objetivos do artigo

Comparar os Graph Databases existentes, focando as funcionalidades referentes a:

Modelo de dados

Interface para consultas

Constraints de integridade

Capacidade de realizar consultas em grafos

Page 6: Comparison

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.)

Page 7: Comparison

7/47

Bancos de dados pesquisados

AllegroGraph

DEX

Filamemt

G-Store

HyperGraph

Foram escolhidos os seguintes bancos de dados

InfiniteGraph

Neo4j

Sones

VertexDB

Page 8: Comparison

8/47

Page 9: Comparison

9/47

Page 10: Comparison

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. Constraints de integridade

7. Queries essenciais

Page 11: Comparison

11/47

Armazenamento de dados

Memória principal

Memória externa

Armazenamento em memória

Índices

Page 12: Comparison

12/47

Armazenamento de dados

Page 13: Comparison

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. Constraints de integridade

7. Queries essenciais

Page 14: Comparison

14/47

Funções de operação e manipulação

DDL: linguagem de definição de dados

DML: linguagem de manipulação de dados

Uso de queries

API

GUI

Page 15: Comparison

15/47

Funções de operação e manipulação

Page 16: Comparison

16/47

DML

Page 17: Comparison

17/47

GUI

Page 18: Comparison

18/47

GUI

Page 19: Comparison

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. Constraints de integridade

7. Queries essenciais

Page 20: Comparison

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

Page 21: Comparison

21/47

Estruturas de grafos presentes

Page 22: Comparison

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. Constraints de integridade

7. Queries essenciais

Page 23: Comparison

23/47

Representação de entidades e relações

Schema (tipos de dados)

Nodos

Propriedades

Relações

Instância

Nodos-objeto

Nodos valorados

Nodos complexos

Relações simples

Relações complexas

Page 24: Comparison

24/47

Representação de entidades e relações

Page 25: Comparison

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. Constraints de integridade

7. Queries essenciais

Page 26: Comparison

26/47

Suporte a consultas

Tipo

Linguagem de consulta

API

Linguagem de consulta gráfica

Uso

Recuperação

Raciocínio

Análise

Page 27: Comparison

27/47

Linguagem de consulta

Page 28: Comparison

28/47

Raciocínio

Page 29: Comparison

29/47

Suporte a consultas

Page 30: Comparison

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. Constraints de integridade

7. Queries essenciais

Page 31: Comparison

31/47

Constraints de integridade

Verificação de tipos

Identidade de nodos/arestas

Integridade referencial

Verificação da cardinalidade

Dependência funcional

Constraints de padrão de grafos

Page 32: Comparison

32/47

Constraints de integridade

Page 33: Comparison

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. Constraints de integridade

7. Queries essenciais

Page 34: Comparison

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

Page 35: Comparison

35/47

Adjacência

Page 36: Comparison

36/47

Queries essenciais

Page 37: Comparison

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

Page 38: Comparison

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

Page 39: Comparison

39/47

Análise Crítica

Relacionamento do artigo com os assuntos tratados na disciplina e/ou com modelos de BD;

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.

Page 40: Comparison

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.

Page 41: Comparison

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

Page 42: Comparison

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);

Page 43: Comparison

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

Page 44: Comparison

44/47

Avaliação da Publicação

Avaliação do evento

Qualis: classificação A2

O H5-index é de 20

Page 45: Comparison

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)

Page 46: Comparison

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

Page 47: Comparison

47/47

FIM

Dúvidas?

CMP151 - Modelos Avançados de Bancos de Dados