Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Prazer, banco de grafo

Prazer, banco de grafo

Uma breve apresentação sobre casos de uso de banco de grafo e relato da experiência com ArangoDB

Avatar for Vinicius Cruz

Vinicius Cruz

April 11, 2016
Tweet

More Decks by Vinicius Cruz

Other Decks in Technology

Transcript

  1. Hello World! Vinicius Cruz Diretor técnico na Olaria Colaborador no

    PHP BA Desenvolvedor web Um pouco de DevOps
  2. O que é grafo? ◎ Representação matemática de relações em

    conjunto de objetos ◎ Composto de vértices e arestas
  3. Exemplo ◎ Podemos representar um site através do grafo ◎

    Cada página é um vértice ◎ As arestas são representadas por link entre as páginas
  4. Grafo ◎ Vértices possuem informações ◎ Arestas também podem conter

    informações ◎ Um vértice pode conter várias arestas
  5. Twitter ◎ a entidade usuário é um vértice com atributos

    ◦ nome: Vinicius ◦ apelido: @vinaocruz ◎ a relação segue é uma aresta (@vinaocruz segue @mlalbuquerque) ◦ data início: 2016-01-01 ◦ data fim: null (caso dê unfollow: 2016-12-01)
  6. Twitter ◎ Podemos ter também tweet como vértice ◎ E

    mention como aresta (@vinaocruz marcado tweet)
  7. Twitter from: @vinaocruz to: @mlalbuquerque initAt: 2010-01-01 from: @mlalbuquerque to:

    @vinaocruz initAt: 2010-01-02 type: mention type: author
  8. Estudo de caso ◎ Rede comercial de vendedoras de cosméticos

    ◎ Vendedoras formam equipe ◎ Membro da equipe inicia novas vendedoras
  9. Problema ◎ A vendedora Azul formou sua própria equipe ◎

    Mas preciso exibir no relatório a equipe completa da vendedora Vermelha ◎ Preciso manter um histórico sobre as relações
  10. Grafos ◎ Cada vendedora é um vértice ◎ As relações

    entre vendedoras são arestas ◎ Nas arestas contém a data que iniciou e conterá a data de saída
  11. ArangoDB ◎ Banco de dados multi modelo ◎ Diversos acessos

    ◎ Gratuito e open source ◎ Extensível - Fox
  12. ArangoDB ◎ Documentos salvos em coleções ◎ Free schema ◎

    Dados normalmente estruturado (JSON) ◎ Atributos indexados
  13. ArangoDB ◎ No grafo, vértices e arestas são documentos ◎

    Algoritmos de grafo embutidos ◎ Consultas utilizando index geolocalizado, full text, AQL