Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Prazer, banco de grafo
Search
Vinicius Cruz
April 11, 2016
Technology
0
99
Prazer, banco de grafo
Uma breve apresentação sobre casos de uso de banco de grafo e relato da experiência com ArangoDB
Vinicius Cruz
April 11, 2016
Tweet
Share
More Decks by Vinicius Cruz
See All by Vinicius Cruz
Ampliando a experiência de busca com MeiliSearch
vinaocruz
0
140
Other Decks in Technology
See All in Technology
第4回Snowflake 金融ユーザー会 Snowflake summit recap
tamaoki
0
210
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
230
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
230
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
130
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
160
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
Flutter向けPDFビューア、pdfrxのpdfium WASM対応について
espresso3389
0
120
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
180
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
160
WordPressから ヘッドレスCMSへ! Storyblokへの移行プロセス
nyata
0
430
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
3
280
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
4 Signs Your Business is Dying
shpigford
184
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Code Review Best Practice
trishagee
69
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Raft: Consensus for Rubyists
vanstee
140
7k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Designing for humans not robots
tammielis
253
25k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Building Adaptive Systems
keathley
43
2.6k
GraphQLとの向き合い方2022年版
quramy
49
14k
Transcript
Prazer, banco de grafo
Hello World! Vinicius Cruz Diretor técnico na Olaria Colaborador no
PHP BA Desenvolvedor web Um pouco de DevOps
O que é grafo? ◎ Representação matemática de relações em
conjunto de objetos ◎ Composto de vértices e arestas
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
Grafo ◎ Vértices possuem informações ◎ Arestas também podem conter
informações ◎ Um vértice pode conter várias arestas
Aplicação ◎ Redes sociais ◎ Sistema de indicações ◎ Hierarquias
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)
Twitter ◎ Podemos ter também tweet como vértice ◎ E
mention como aresta (@vinaocruz marcado tweet)
Twitter from: @vinaocruz to: @mlalbuquerque initAt: 2010-01-01 from: @mlalbuquerque to:
@vinaocruz initAt: 2010-01-02 type: mention type: author
Estudo de caso ◎ Rede comercial de vendedoras de cosméticos
◎ Vendedoras formam equipe ◎ Membro da equipe inicia novas vendedoras
Diagrama Entidade Relacional
Banco relacional
Equipe
Equipe
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
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
Equipe endAt: 2016-04-01
None
ArangoDB ◎ Banco de dados multi modelo ◎ Diversos acessos
◎ Gratuito e open source ◎ Extensível - Fox
ArangoDB ◎ Documentos salvos em coleções ◎ Free schema ◎
Dados normalmente estruturado (JSON) ◎ Atributos indexados
ArangoDB ◎ No grafo, vértices e arestas são documentos ◎
Algoritmos de grafo embutidos ◎ Consultas utilizando index geolocalizado, full text, AQL
Exemplo
Outros bancos de grafo ◎ Neo4J ◎ AllegroGraph ◎ OrientDB
◎ e muitos outros
Dúvidas?
Obrigado! @vinaocruz