Compartilhar via


Comparar gráficos e bancos de dados relacionais

Observação

Esse recurso está atualmente em versão prévia pública. Essa versão prévia é oferecida sem um SLA e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.

Neste artigo, comparamos bancos de dados de grafo e bancos de dados relacionais, destacando as principais diferenças, casos de uso e vantagens na análise. Você pode avaliar se deve usar o Graph para Microsoft Fabric ou um banco de dados relacional com base em suas necessidades específicas.

Um banco de dados de grafo armazena e consulta dados como uma rede de nós (entidades) e bordas (relações), tornando-o fundamentalmente diferente do formato tabelas e linhas de bancos de dados relacionais. Os bancos de dados do Graph se destacam na modelagem e análise de dados altamente conectados, como redes sociais, grafos de conhecimento, sistemas de recomendação e detecção de fraudes.

Diferenças principais

  • Bancos de dados do Graph: Organize dados como nós e bordas, armazenando relações explicitamente. A navegação por conexões é eficiente e geralmente independe do tamanho total do conjunto de dados.
  • Bancos de dados relacionais: Organize dados em tabelas com linhas e colunas. As relações são inferidas no momento da consulta usando operações JOIN, que podem se tornar complexas e lentas para dados altamente conectados.

Consultando relações: junções versus percursos

Consultas de banco de dados relacional: Os dados em tabelas diferentes são vinculados por meio de chaves estrangeiras. Para recuperar dados relacionados, os bancos de dados relacionais usam operações JOIN para combinar linhas de várias tabelas. Isso funciona bem para relações simples, mas pode se tornar caro e complexo para conexões profundas ou de comprimento variável.

Consultas de banco de dados do Graph: As relações são armazenadas como bordas, permitindo a passagem direta de um nó para outro. As consultas de grafo podem navegar com eficiência em vários saltos e padrões complexos. Linguagens de consulta de grafos como GQL facilitam a realização de percursos e a correspondência de padrões.

Example:

GQL:

MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o

SQL (equivalente):

SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';

Observação

GQL é uma linguagem de consulta padronizada por ISO para bancos de dados de grafo, projetada para consulta e manipulação eficientes de dados estruturados em grafo. O mesmo grupo de trabalho internacional que supervisiona o SQL está desenvolvendo-o.

Implicações de desempenho

Os bancos de dados do Graph podem superar os sistemas relacionais para consultas que envolvem muitas bordas ou profundidades desconhecidas, especialmente para análise de vínculo profundo ou consultas recursivas. Os bancos de dados relacionais se destacam em operações e agregações orientadas a conjuntos devido a décadas de otimização.

Considerações sobre dimensionamento

  • Bancos de dados relacionais: Normalmente, dimensionam verticalmente (máquinas maiores) e dimensionam-se horizontalmente mediante fragmentação e replicação. A fragmentação de esquemas altamente conectados é complexa e pode incorrer em sobrecarga entre redes.
  • Bancos de dados do Graph: Dimensione vertical e horizontalmente. Bancos de dados de grafo distribuídos particionam grafos entre máquinas, com o objetivo de manter nós relacionados juntos para percursos eficientes.

Quando usar cada

Use um Banco de Dados do Graph se:

  • Seus dados são altamente conectados e possuem muitos relacionamentos (redes sociais, grafos de conhecimento, recomendações).
  • Você precisa percorrer um número desconhecido ou variável de saltos.
  • O esquema está evoluindo ou semiestruturado.
  • Você deseja modelagem intuitiva para domínios em que as relações são centrais.

Use um banco de dados relacional se:

  • Seus dados são principalmente tabulares ou se ajustam a uma estrutura bem definida.
  • Suas consultas envolvem agregações pesadas ou operações com grandes conjuntos.
  • Você tem ferramentas ou conhecimentos existentes alinhados com o SQL.

Abordagens híbridas

Muitos projetos usam ambos: um banco de dados relacional para dados transacionais principais e um banco de dados de grafo para recursos especializados de análise ou análise de rede.