Para que serve um banco de dados gráfico e para que serve?

Os bancos de dados gráficos são um tipo especial de banco de dados que armazena estruturas de dados complexas que seriam impossíveis de armazenar em um banco de dados relacional tradicional. Eles são usados ​​especialmente para mídias sociais, pois têm um desempenho muito melhor para determinadas consultas.

índice

  1. O que é um banco de dados gráfico?
  2. O que os torna mais rápidos?

O que é um banco de dados gráfico?

Os bancos de dados gráficos são mais comumente usados ​​para dados altamente interconectados e para situações em que o conteúdo dos dados em si é menos importante do que a estrutura geral.

O caso de uso mais simples para dados de gráficos é para redes sociais. Considere uma rede de pessoas; cada pessoa tem uma lista de amigos e se relaciona com outras pessoas. Cada pessoa também publica postagens, geralmente às centenas. Cada post pode ter milhares de pessoas interagindo com ele. Portanto, mesmo que o tweet tenha apenas 280 caracteres, há muito mais para memorizar sobre ele.

Certamente, este não é o único caso de uso, apenas o mais digerível: bancos de dados gráficos são usados ​​para todo tipo de coisa. Outro exemplo é a detecção de fraude; Digamos que você seja um banco e queira denunciar contas suspeitas. Pode ser um pouco arriscado que duas contas separadas tenham o mesmo endereço ou compartilhem números de telefone. Com um banco de dados gráfico, você pode representar graficamente a conexão entre as duas contas e identificar problemas como esse com muito mais eficiência do que um banco de dados relacional.

Em um banco de dados gráfico, cada objeto é chamado de nó. Um nó pode ter qualquer número de propriedades, assim como funciona um banco de dados de documentos. Um banco de dados de documentos simplesmente armazenará cada nó como um documento separado em uma coleção (array) de documentos, independentemente de como eles estejam conectados.

Em um banco de dados de grafos, as conexões entre os nós são chamadas de arestas e você pode conectar dois nós de qualquer lugar na tabela. As arestas definem as relações entre os nós e podem ter tipos específicos. Por exemplo, dois amigos seriam vinculados com uma borda "Amigos", mas um usuário seria conectado a uma postagem com uma borda "Publicado" ou "Gostei".

O que os torna mais rápidos?

Eles não são bancos de dados relacionais como o MySQL não pode armazenar estruturas semelhantes a gráficos: Links como esses ainda são conceitos básicos para tabelas SQL. Links formam conexões entre tabelas, permitindo que os dados sejam armazenados e atualizados em tabelas separadas enquanto mantém um link em outro lugar no banco de dados, assim como os ponteiros funcionam em C. No exemplo da rede social, você não deseja armazenar o nome de cada amigo um determinado usuário tem como amigo pode mudar seu nome, então você armazena o ID do amigo e faz uma busca sempre que precisar dos dados corretos. Ele pode armazenar em cache os resultados para carregar o banco de dados, mas a maioria dos sistemas funcionará de maneira semelhante.

Armazenar um conjunto de links (como uma lista de amigos) é bom, mas o problema surge quando você começa a fazer qualquer tipo de análise complexa. O exemplo clássico é a busca por amigos de amigos. Para obter uma lista de todos que têm um amigo em comum com uma determinada pessoa, você deve percorrer a lista de amigos dessa pessoa, percorrer a lista de amigos de cada amigo e, em seguida, realizar uma pesquisa para cada registro. Você também precisa garantir que não retorne registros duplicados, o que é um loop extra.

Se você estiver familiarizado com a notação Big O, talvez já veja o problema aqui. É um problema de complexidade exponencial; fazer vários loops aninhados como este desliga seu computador muito rapidamente. Também não é uma maneira inteligente de resolver esse problema.

Dê uma olhada neste benchmark neo4j consultando amigos de amigos, versus um banco de dados relacional tradicional (como MySQL):

Na profundidade 2, é uma consulta simples para ambos os bancos de dados. Na profundidade 3, o MySQL não pode executar essa consulta em um período de tempo normal e leva 30 segundos para retornar uma resposta. Para seu crédito, ele consegue retornar a profundidade de consulta 4 após 25 minutos, mesmo que a profundidade 5 bloqueie o banco de dados.

O banco de dados gráfico não tem problemas em retornar nenhuma dessas consultas, com todos os tempos de execução abaixo de 2 segundos, tornando-o milhares de vezes mais rápido.

Como ele faz isso? Matemática muito complicada, principalmente. Os gráficos são basicamente uma estrutura matemática e há muita teoria por trás deles, que não estamos absolutamente qualificados para discutir em detalhes. Mas os gráficos relacionais são simples o suficiente para serem entendidos visualmente, o que facilita o trabalho com bancos de dados de gráficos.

Se você quiser começar a trabalhar com um, precisará escolher e instalar um banco de dados gráfico. O Neo4j é gratuito, de código aberto e uma opção muito popular. A AWS tem seu próprio banco de dados Neptune, que você pode experimentar gratuitamente, mas deve ser hospedado na AWS. Alguns bancos de dados multimodelo suportam gráficos como opção, como Microsoft SQL Server, Oracle Database e ArangoDB.

  • Top 7 aplicativos de despertador no iOS – Geek Review
  • O primeiro anúncio Oculus Quest do Facebook é removido do jogo pago após a reação – Revisão Geek

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

Deixe uma resposta Cancelar resposta

Onde os bancos de dados de Amostras são usados?

Vejamos alguns exemplos de bancos de dados comuns:

  • Listas telefônicas: um exemplo seriam as Páginas Amarelas.
  • Bibliotecas: As bibliotecas geralmente têm seu próprio sistema de armazenamento e classificação de livros.
  • Prontuários médicos: os dados dos pacientes são atualizados sempre que visitam o hospital.

Quais são as características do banco de dados?

Entre as principais características dos sistemas de banco de dados podemos citar: Independência lógica e física dos dados . Redundância mínima. Acesso simultâneo por vários usuários.

Ir arriba