Escolar Documentos
Profissional Documentos
Cultura Documentos
Bancos de Dados Orientados A Grafos (Graph DBMS)
Bancos de Dados Orientados A Grafos (Graph DBMS)
NÃO RELACIONAL
Introdução
A teoria dos grafos é aplicada em diversos problemas matemáticos, inclu-
sive em implementações de algoritmos computacionais, com o objetivo
de representar um problema complexo e abstrato com uma abordagem
visual para a resolução do problema.
Neste capítulo, você conhecerá as funcionalidades e características
dos bancos de dados orientados a grafos. Além disso, verá como se dá a
criação e o relacionamento de grafos em bancos de dados. Por fim, verá
como ocorre o acesso e a manipulação a dados nesses bancos.
1 Funcionalidades e características
dos bancos de dados orientados a grafos
A matemática e a computação caminham juntas, e suas teorias foram aplicadas
nos sistemas computacionais. Uma delas é a teoria dos grafos, que pode ser
aplicada na representação de diversos problemas e implementada em software.
Segundo Cardoso (2005), a teoria dos grafos foi criada devido ao problema
das pontes de Königsberg (Alemanha), dado que a cidade se localizava entre
duas ilhas do rio Pregel, as quais estavam ligadas umas às outras através de
sete pontes, conforme a Figura 1a.
2 Bancos de dados orientados a grafos (graph DBMS)
A história das pontes data de 300 anos atrás. Königsberg foi uma impor-
tante cidade da Prússia, localizada ao norte da Europa, próximo à costa do
Mar Báltico, a qual hoje é chamada de Kaliningrado. A cidade possuía duas
ilhas cortadas pelo rio Pregel e, na época, seis pontes as ligavam às margens,
ao passo que outra fazia a ligação das duas ilhas entre si. Por volta de 1735,
os moradores de Königsberg se depararam com o seguinte problema: como
seria possível fazer um passeio a pé pela cidade de forma a passar uma única
vez por cada uma das sete pontes e retornar ao ponto de partida? Na época,
foi o matemático Leonhard Euler quem decifrou o enigma, revelando ser
impossível tal façanha.
A história transcreve que os habitantes de Königsberg tinham por hábito
atravessar todas as pontes em seus passeios, contudo, havia um certo descon-
forto, pelo fato de não ter sido encontrada uma forma de realizar um trajeto
com partida e chegada a um mesmo lugar atravessando apenas uma vez cada
uma das pontes.
No caso do problema das pontes, o grafo criado por Leonhard Euler (Fi-
gura 1b) tinha quatro pontos: um representando uma das margens do rio e
outro a outra margem. Já o terceiro ponto representava uma das ilhas, e o
quarto, a outra ilha. Sendo assim, o grafo tinha quatro pontos e sete linhas,
que representavam as pontes. O desafio era fazer um passeio pelo grafo que
partisse de um dos quatro pontos, percorresse cada uma das sete linhas uma
única vez e voltasse ao ponto de partida.
(a) (b)
Figura 1. Início da teoria dos grafos: (a) problema da ponte de Königsberg; (b) grafo criado
por Leonhard Euler.
Fonte: Globo Ciência (2011, documento on-line).
Bancos de dados orientados a grafos (graph DBMS) 3
Grafo simples: pode ter apenas uma relação com os outros grafos.
Multigrafo: pode ter múltiplos relacionamentos com os outros grafos.
Pseudografo: pode ter múltiplos relacionamentos com os outros grafos,
bem como autorrelacionamento.
Bancos de dados orientados a grafos (graph DBMS) 5
Figura 2. Tipos de grafos utilizados em bancos de dados: (a) grafo simples; (b) multigrafo;
(c) pseudografo.
Fonte: Adaptada de Even (2011).
Exemplo
Observe, na aba Table, que foi criado um JSON do nó, que, para o usuário 3,
é o seguinte:
{
"nome": "Yasmin Tereza",
"sexo": "F",
"idade": "20"
}
Ou seja, demonstrando que foram criados três nós (vértices), cinco pro-
priedades e cinco relacionamentos (arestas). Para a verificação de que o grafo
foi corretamente construído, pode-se realizar o seguinte comando:
(Continua)
Bancos de dados orientados a grafos (graph DBMS) 11
(Continuação)
Deleção de um atributo:
MATCH (n:Pessoa
{nome: 'Joana'})
REMOVE
n.data_nascimento
Deleção de um relacionamento:
MATCH (j:Pessoa
{nome: 'Joana'})-
[r:IS_AMIGOS_COM]-
>(m:Pessoa {nome:
'Marcos'})
DELETE r
MATCH (usuario1:Usuario)
SET usuario1.postagem1 = 'Olá, pessoal! Tudo bem?'
RETURN usuario1
{
"name": "João Matias",
"idade": "28",
"postagem1": "Olá, pessoal! Tudo bem?",
"sexo": "M"
}
Deleção de um relacionamento
Deleção de um nó
MATCH (usuario2)
DELETE usuario2
ANTON, H.; RORRES, C. Álgebra linear: com aplicações. 10. ed. Porto Alegre: Bookman,
2012.
CARDOSO, D. M. Teoria dos grafos e aplicações. 2005. Dissertação (Mestrado em Mate-
mática) – Departamento de Matemática, Universidade de Aveiro, Aveiro, 2005.
EVEN, S. Graph algorithms. Cambridge: Cambridge University, 2011.
GLOBO CIÊNCIA. Entenda o enigma das pontes de Königsberg que instigou a geome-
tria. 2011. Disponível em: http://redeglobo.globo.com/globociencia/noticia/2011/12/
entenda-o-enigma-das-pontes-de-konigsberg-que-instigou-geometria.html. Acesso
em: 06 jun. 2020.
HÖLSCH, J.; SCHMIDT, T.; GROSSNIKLAUS, M. On the performance of analytical and
pattern matching graph queries in neo4j and a relational database. In: INTERNATIONAL
WORKSHOP ON QUERYING GRAPH STRUCTURED DATA (GRAPHQ), 6., 2017, Venice.
Proceedings [...]. Venice: [s. n.], 2017.
NETTO, P. O. B.; JURKIEWICZ, S. Grafos: introdução e prática. São Paulo: Blucher, 2009.
ROBINSON, I.; WEBBER, J.; EIFREM, E. Graph databases. [S. l.]: O'Reilly Media, 2013.
RUSU, F.; HUANG, Z. In-depth benchmarking of graph database systems with the Linked
Data Benchmark Council (LDBC) Social Network Benchmark (SNB). [S. l.: s. n.], 2019.
SHMUELI, O.; SHNAIDERMAN, L. Processing query to graph database. Depositante: Te-
chnion Research and Development Foundation Ltd. US n. 20140244687-A1. Depósito:
24 fev. 2013. Concessão: 27 Mar. 2018.
Bancos de dados orientados a grafos (graph DBMS) 15
Leituras recomendadas
ALVAREZ, G. M.; CECI, F.; GONÇALVES, A. L. Análise comparativa dos bancos orientados
a grafos de primeira e segunda geração–uma aplicação na análise social. [S. l.: s. n.], 2015.
GONÇALVES, A. L. Grafos: aplicações ao jogo. 2007. Dissertação (Mestrado em Mate-
mática/Educação) – Universidade Portucalense, Porto, 2007.
SILVA, G. H. M. A. Um modelo de visualização de dados utilizando banco de dados orientado
a grafo suportado por big data. 2016. Dissertação (Mestrado em Engenharia Elétrica) –
Universidade de Brasília, Brasília, 2016.
SKIENA, S. S. The algorithm design manual. 2nd ed. New York: Springer, 2008.
ZANATO, K. Y. S.; VENTURA, T. M.; RIBEIRO, J. M. Análise da evasão de alunos da área de
tecnologia da informação por meio de um banco de dados orientado a grafos. Revista
Eletrônica Argentina-Brasil Tecnologias da Informação e da Comunicação, [s. l.], v. 1, n. 8,
p. 1–15, 2017.
Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun-
cionamento foi comprovado no momento da publicação do material. No entanto, a
rede é extremamente dinâmica; suas páginas estão constantemente mudando de
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade
sobre qualidade, precisão ou integralidade das informações referidas em tais links.