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
Por que suas relações importam
Search
Lucas Santos
July 12, 2019
Programming
0
96
Por que suas relações importam
Lucas Santos
July 12, 2019
Tweet
Share
More Decks by Lucas Santos
See All by Lucas Santos
The Hitchhiker's Guide for an Amazing API with TypeScript
khaosdoctor
0
90
Escalando globalmente com TypeScript e JavaScript na Klarna
khaosdoctor
0
190
The future of JavaScript
khaosdoctor
0
59
TypeScript tips that could save your life
khaosdoctor
0
210
É hora de falar sobre Deno
khaosdoctor
0
73
JS Software testing for beginners
khaosdoctor
0
77
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
40
The Dark Side of JavaScript
khaosdoctor
0
75
Integrating Containers Into JavaScript
khaosdoctor
0
65
Other Decks in Programming
See All in Programming
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
320
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
120
モテるデスク環境
mozumasu
3
1.4k
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
340
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
280
PyCon mini 東海 2025「個人ではじめるマルチAIエージェント入門 〜LangChain × LangGraphでアイデアを形にするステップ〜」
komofr
3
700
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
150
Bakuraku E2E Scenario Test System Architecture #bakuraku_qa_study
teyamagu
PRO
0
380
NIKKEI Tech Talk#38
cipepser
0
400
contribution to astral-sh/uv
shunsock
0
580
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
150
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
330
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
186
22k
Music & Morning Musume
bryan
46
6.9k
Producing Creativity
orderedlist
PRO
348
40k
Become a Pro
speakerdeck
PRO
29
5.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Practical Orchestrator
shlominoach
190
11k
Done Done
chrislema
186
16k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Transcript
Por que as relações entre seus dados importam?
senior solutions architect_ quem sou eu_ /khaosdoctor @_staticvoid lsantos.dev @khaosdoctor
nindoo.ai
obarra.co trainingcenter.io
abcdevelopers.org cupom: LSANTOSABCDEV2019
slsweek.netlify.com
Bancos de dados hoje_
lidamos bem com o crescimento dos dados
e o crescimento das relações entre esses dados?
O problema dos relacionamentos_
Bancos relacionais_
solução?
removemos os relacionamentos_
Bancos não-relacionais
Grafos_
O que são grafos_
nós_
1 1 Um nó simples
1 { name: 'alice' } Um nó com propriedades
alice:Person { name: 'alice' } Um nó com uma label
arestas_
FOLLOWS Relacionamento orientado 1 { name: 'alice' } 2 {
name: 'bob' }
1 { name: 'alice' } 2 { name: 'bob' }
FOLLOWS Relacionamento não orientado
FOLLOWS Relacionamento orientado com propriedades 1 { name: 'alice' }
2 { name: 'bob' } {since: '2018-04-10'}
None
None
Neo4J
Neo4J o banco para todos os seus grafos - Criado
em 2007 como uma alternativa a bancos relacionais - Escrito em Java - Utiliza Cypher como query language - Não é o único banco de grafos
Vantagens em bancos de grafos_
flexibilidade_
naturalidade_
velocidade_
Armazenamento nativo_
Armazenamento simulado_
Query language_
cypher
(a:Person)-[:FOLLOWS]->(b:Person)
Como montar uma query_
Quem me segue e segue outra pessoa que ainda não
me segue?
extrair constantes_
quem sou "eu"?
(me:Person {handler: '_StaticVoid'})
descrever o relacionamento_
uma pessoa que me segue
(p1:Person)-[r:FOLLOWS]->(me)
e segue outra pessoa
(p2:Person)<-[:FOLLOWS]-(p1:Person)-[:FOLLOWS]->(me)
que ainda não me segue
negações
WHERE NOT (p2)-[:FOLLOWS]->(me)
None
None
Extraindo inteligência
Teoria dos grafos_
Teoria dos Grafos - "Criada" por Leonhard Euler em 1736
- Visa analisar e extrair informações relevantes sobre grafos - Ótima para analisar grupos com relações bem estabelecidas - O problema das 7 pontes de Königsberg é o mais famoso - O problema do caixeiro viajante é um problema NP-Completo de grafos
Knight's tour
Inteligência Porque é muito mais do que um desenho -
Centralidade - Proximidade - PageRanking - ArticleRanking - Detecção de comunidades - Componentes conexos - Contagem de tríades - Encontrar caminhos - Menor caminho - Dijkstra - Similaridade - Predição de relacionamentos
Centralidade
importância de um nó sobre a rede
Betwenness A influência de um nó sobre o fluxo de
informações em um grafo.
None
Closeness (proximidade) Nós que são capazes de transmitir informação muito
rápido para a rede
None
PageRank A popularidade de um nó na rede
None
Detecção de comunidades_
Detecção de Louvain
None
Similaridade_
Jaccard Similaridade entre dois conjuntos
None
referências_ - https://en.wikipedia.org/wiki/Neo4j - https://en.wikipedia.org/wiki/Knight%27s_tour - https://pt.wikipedia.org/wiki/NP-completo - https://pt.wikipedia.org/wiki/Problema_do_caixeiro-viajante -
https://en.wikipedia.org/wiki/Seven_Bridges_of_Königsberg - https://en.wikipedia.org/wiki/Graph_theory - https://neo4j.com/docs/cypher-manual/current/introduction/ - https://neo4j.com/developer/cypher/ - https://neo4j.com/docs/getting-started/current/get-started-with-neo4j/ - https://neo4j.com/docs/graph-algorithms/current/introduction/ - https://www.youtube.com/watch?v=l76udM3wB4U&list=PL9Hl4pk2FsvWM9GWaguRhlCQ-pa-ERd4U - https://medium.com/neo4j/graph-visualization-with-neo4j-using-neovis-js-a2ecaaa7c379 - https://github.com/neo4j-contrib/neovis.js - https://neo4j.com/developer/tools-graph-visualization/
/khaosdoctor @_staticvoid lsantos.dev @khaosdoctor obrigado_