O que é um banco de dados gráfico?

Definição do banco de dados gráfico

Os bancos de dados gráficos foram criados especificamente para possibilitar o armazenamento de relacionamentos e a navegação por eles. Os relacionamentos são elementos distintos que agregam a maior parte do valor para os bancos de dados gráficos. Os bancos de dados gráficos usam nós para armazenar entidades de dados e bordas para armazenar os relacionamentos entre as entidades. Uma borda tem sempre um nó inicial, um nó final, um tipo e um direcionamento, o que possibilita a descrição dos relacionamentos entre pais e filhos, das ações, das propriedades e assim por diante. A quantidade e os tipos de relacionamentos que um nó pode ter são ilimitados.

Um gráfico em um banco de dados gráfico pode ser cruzado com tipos de borda específicos ou por todo o gráfico. Nos bancos de dados gráficos, o cruzamento das associações ou dos relacionamentos ocorre muito rapidamente, uma vez que os relacionamentos entre os nós não são calculados no momento das consultas, mas persistem no banco de dados. Os bancos de dados gráficos são vantajosos em casos de uso como redes sociais, mecanismos de recomendação e detecção de fraudes, em que é necessário criar relacionamentos entre os dados e consultar rapidamente esses relacionamentos.

O gráfico a seguir é um exemplo de gráfico de rede social. Considerando as pessoas (nós) e seus relacionamentos (bordas), é possível descobrir quem são os “amigos dos amigos” de uma pessoa específica, por exemplo, os amigos dos amigos de Howard. 

Exemplo de gráfico de rede social

Casos de uso

Detecção de fraudes

Os bancos de dados gráficos podem fazer uma prevenção sofisticada contra fraudes. Com os bancos de dados gráficos, você pode usar relacionamentos para processar transações financeiras e de compras praticamente em tempo real. Com consultas gráficas rápidas, você pode detectar, por exemplo, se um possível comprador está usando o mesmo endereço de e-mail e cartão de crédito que o usado em um caso de fraude conhecido. Os bancos de dados gráficos também podem ajudá-lo a detectar facilmente padrões de relacionamento, como várias pessoas associadas a um endereço de e-mail pessoal ou várias pessoas compartilhando o mesmo endereço IP, mas residentes em endereços físicos diferentes. 

Mecanismos de recomendação

Os bancos de dados gráficos são uma boa opção para aplicativos de recomendação. Com os bancos de dados gráficos, você pode armazenar em um gráfico os relacionamentos entre as categorias de informação, como os interesses, os amigos e o histórico de compras dos clientes. Você pode usar um banco de dados gráfico altamente disponível para fazer recomendações de produtos a um usuário com base em quais produtos foram comprados por outras pessoas que seguem o mesmo esporte e têm histórico de compras similar. Além disso, é possível identificar pessoas com um amigo em comum, mas que ainda não se conhecem, para fazer uma recomendação de amizade. 

Bancos de dados gráficos populares

Amazon Neptune

O Amazon Neptune é um mecanismo de banco de dados gráfico com projeto específico e alta performance, otimizado para armazenar bilhões de relacionamentos e consultar gráficos com latência de milissegundos. O Neptune oferece suporte aos gráficos de propriedades de modelos de gráficos populares e ao Resource Description Framework (RDF) do W3C, bem como às suas respectivas linguagens de consulta, Apache TinkerPop Gremlin e SPARQL. Esse suporte permite que você crie facilmente consultas que navegam com eficiência em conjuntos de dados altamente conectados. 

O Neptune é altamente disponível, com réplicas de leitura, recuperação point-in-time, backup contínuo para o Amazon S3 e replicação pelas zonas de disponibilidade. O Neptune é seguro, com suporte à criptografia em repouso. Ele é totalmente gerenciado, portanto você não precisa mais se preocupar com tarefas de gerenciamento de banco de dados, como provisionamento de hardware, aplicações de patches de software, instalação, configuração ou backups.

Anúncio do Amazon Neptune no AWS re:Invent 2017

Neo4j

O Neo4j é um banco de dados gráfico não relacional, nativo e de software livre que fornece um back-end transacional compatível com as propriedades ACID para seus aplicativos. O Neo4j é um banco de dados gráfico porque implementa de maneira eficiente o modelo gráfico de propriedades em nível de armazenamento. Ele também apresenta características completas de banco de dados, incluindo compatibilidade com transações ACID, suporte a cluster e failover de tempo de execução. O Neo4j oferece suporte para sua própria linguagem de consulta Cypher e para o Gremlin.

Para começar a usar o Neo4j, visite o AWS Marketplace.