73
Bancos de Dados de Grafos Jaudete Daltio MC536 1

Bancos de Dados de Grafos - ic.unicamp.brcmbm/MC536/bdgrafos-jaudete2018.pdf · NOSQL 8 No to SQL Never SQL. NOT ONLY SQL Reconhecerque para algunsproblemas podemexistirsoluçõesde

  • Upload
    ngongoc

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

Bancos de Dados de

Grafos

Jaudete Daltio

MC536

1

Motivações para novos SGBDs▪ Volume de dados crescent

▪ Distribuídos, heterogêneos e interligados

▪ Questões sobre armazenamento e processamento descentralizado, desempenhoe semântica

2

Tendência (1): volume

3https://pt.slideshare.net/sfamilian/working-with-big-data-jan-2016-part-1/6-CONTEXT_WHATS_BIG_DATAHOW_BIG

Tendência (1): volume

4https://pt.slideshare.net/sfamilian/working-with-big-data-jan-2016-part-1/6-CONTEXT_WHATS_BIG_DATAHOW_BIG

Tendência (2): conectividade

5

Tendência (3): heterogeneidade

6

Tendência (4): arquiteturas

7

NOSQL

8

No to SQL Never SQL

NOT ONLY SQL

Reconhecer que para alguns problemaspodem existir soluções de persistência

customizadas com melhor desempenhoOU mais amigaveis

9

NOSQL “SGBDs”• Não possuem todas as propriedades de um

SGBD relacional (p ex, consistência)

• Noção de esquema é fuzzy

• Em um mesmo BD, duas instancias de umamesma entidade podem ter atributos diferentes

• Diferentes modelos de dados

10

Modelo de Dados (Codd, 1980)

• Coleção de elementos para representar dados e expressar detalhes semânticos

• Componentes

• Tipos de estruturas de dados

• Restrições de integridade para definir estados consistentes do banco de dados

• Operadores para recuperar dados

11

Categorias: Modelos de Dados

12

NOSQL Databases

13

Tamanho X Complexidade

14

Lápide

▪ER

▪Modelagem

▪Mapeamento

▪Especificação

▪Normalização

15

Bancos de Dados

de Grafos

16

O que é um BD grafos ?

• BD NOSQL

• Utiliza modelos de dados baseados em grafos

17

Um grafo é

• um conjunto V de vértices(vértice = nó)

• um conjunto E de arestas: pares ordenados v e w ∈ V(aresta = arco)

18

Por que grafos ?

▪ Vários cenários e problemas do mundo real podem ser mapeados como grafos

19

Tráfego

Fonte: slides Neo4j GraphDays, 2016

20

Hotéis

Fonte: slides Neo4j GraphDays, 2016

21

Relacionamentos

Fonte: slides Neo4j GraphDays, 2016

22

Twitter (Influência)

Cadeia AlimentarFishBase

Proteínas da Levedura

Yeast proteins: Sergei Maslov and Kim Sneppen,Specificity and stability in topology of protein networks,Science 296, 910-913 (2002).

Rede hidrográfica Brasil – 620K nós

26

Modelo de Dados (Codd, 1980)

• Coleção de elementos para representar dados e expressar detalhes semânticos

• Componentes

• Tipos de estruturas de dados

• Restrições de integridade para definir estados consistentes do banco de dados

• Operadores para recuperar dados

28

Estrutura de Dados

29

● Variações sob a definição básica

● Aumentar expressividade

● Representar cenários específicos de forma menos ambígua

Grafo RDF

30

Hipergrafo

31

Grafo de Propriedades

32

Modelo de Dados (Codd, 1980)

• Coleção de elementos para representar dados e expressar detalhes semânticos

• Componentes

• Tipos de estruturas de dados

• Restrições de integridade para definir

estados consistentes do banco de

dados

• Operadores para recuperar dados33

DB Grafos http://db-engines.com/en/ranking/graph+dbms

34

342 sistemas

30 de grafos

Neo4J – 22

Giraph - 124

DB Grafos http://db-engines.com/en/ranking/graph+dbms

35

MULTI?

DB Grafos

36

http://db-engines.com/en/ranking/graph+dbms

Neo4j

• Grafo rotulado de propriedades tipadas

• Arestas possuem tipos

• É possível mais de uma aresta, de tipos diferentes, entre dois vértices

• Vértices podem possuir rótulos

• É possível múltiplos rótulos em um mesmo vértice

Fonte: slides Michael Hunger, Relational to Graph, 2015

37

Em 2015

38

Fonte: slides Michael Hunger, Relational to Graph, 2015

Empresas que adotam

39

Fonte: slides Michael Hunger, Relational to Graph, 2015

Como adotam

40

Fonte: slides Michael Hunger, Relational to Graph, 2015

Estudos de Caso (Neo4j)

Fonte: slides Neo4j GraphDays, 2016

41

Estudos de Caso - Recomendação

Fonte: slides Neo4j GraphDays, 2016

42

Fonte: slides Neo4j GraphDays, 2016

43

Estudos de Caso - Buscas

Fonte: slides Neo4j GraphDays, 2016

44

Conceitos basicos – modelo de

dados do Neo4j

45

Grafo de Propriedades

Fonte: slides Michael Hunger Graph Database Introduction, 2014

46

Rótulos (Labels)

47

Fonte: slides Michael Hunger Graph Database Introduction, 2014

Atributos

48

Fonte: slides Michael Hunger Graph Database Introduction, 2014

Arestas

49

Fonte: slides Michael Hunger Graph Database Introduction, 2014

Tipos de Arestas

50

Fonte: slides Michael Hunger Graph Database Introduction, 2014

Mapeamento dos Relacionamentos

51

Mapeamento dos Relacionamentos

52

Cypher

• Declarativo

• Busca Padrões

53

Consultas em Grafos – “Percurso”Em Neo4j - Cypher

54

1. Ache nó inicial

Consultas em Grafos – “Percurso”

55

2. Percorra o

grafo

ExemploQuem se reporta a quem ?

Fonte: slides Michael Hunger, Relational to Graph, 2015

56

Consulta

57

Fonte: slides Michael Hunger, Relational to Graph, 2015

Consulta

58

Fonte: slides Michael Hunger, Relational to Graph, 2015

Quem se reporta a quem ?

59

Fonte: slides Michael Hunger, Relational to Graph, 2015

Quem se reporta a quem ?

60

Fonte: slides Michael Hunger, Relational to Graph, 2015

Pessoas a quem o Robert se reporta

61

Fonte: slides Michael Hunger, Relational to Graph, 2015

Quem é o chefe ?

62

Fonte: slides Michael Hunger, Relational to Graph, 2015

Estrutura de uma Consulta

63

Fonte: slides Michael Hunger Graph Database Introduction, 2014

MATCH - Padrão

64

Fonte: slides Michael Hunger Graph Database Introduction, 2014

WHERE – Seleção (Filtro)

65

Fonte: slides Michael Hunger Graph Database Introduction, 2014

RETURN - Projeção

66

Fonte: slides Michael Hunger Graph Database Introduction, 2014

ORDER BY

67

Fonte: slides Michael Hunger Graph Database Introduction, 2014

WITH + WHERE = HAVING (SQL)

68

Fonte: slides Michael Hunger Graph Database Introduction, 2014

Collections

69

Fonte: slides Michael Hunger Graph Database Introduction, 2014

FOREACH | CREATE | MERGE

70

Fonte: slides Michael Hunger Graph Database Introduction, 2014

Prática – Neo4j

• www.ic.unicamp.br/~cmbm/MC536/

• > neo4j console

• //localhost:7474

71

Em resumo ...

● Novas tendências e demandas levaram a emergir novas frentes em BD

● NOSQL● Vários modelos de dados - requisitos

específicos● BD Grafos: grafos como modelo de dados● Neo4j

○ Grafo de Propriedades - tipado e rotulado○ Linguagem de consulta Cypher

72

Dúvidas ?

73