Compartilhar via


Comparação de banco de dados de grafo e relacional

Observação

Esse recurso está atualmente em versão prévia pública. Essa versão prévia é oferecida sem um Acordo de Nível de Serviço (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 Supplemental Terms of Use for Microsoft Azure Previews.

Um banco de dados de grafo armazena e consulta dados como uma rede de nós (entidades) e bordas (relações). Essa abordagem difere do formato de 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.

Este artigo compara bancos de dados de grafo e bancos de dados relacionais. Ele destaca as principais diferenças, casos de uso e vantagens na análise. Use essas informações para decidir se deseja usar o graph no Microsoft Fabric ou um banco de dados relacional para suas necessidades específicas.

Principais diferenças entre gráficos e bancos de dados relacionais

  • 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. Use operações JOIN para inferir relações no momento da consulta. Para dados altamente conectados, essas operações podem se tornar complexas e lentas.

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

Consultas de banco de dados relacional: Chaves estrangeiras vinculam dados em tabelas diferentes. Para recuperar dados relacionados, os bancos de dados relacionais usam operações JOIN para combinar linhas de várias tabelas. Para relacionamentos simples, os JOINs funcionam bem. Mas para conexões profundas ou de comprimento variável, elas podem ficar caras e complexas.

Consultas de banco de dados do Graph: Armazene relações como bordas, para que você possa atravessar diretamente 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 grafo, como a GQL (Linguagem de Consulta de Grafos), facilitam a expressão de travessias e 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. Ele foi projetado 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 para gráficos e bancos de dados relacionais

Os bancos de dados do Graph podem superar os bancos de dados 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. No grafo no Microsoft Fabric, o mecanismo de consulta é otimizado para correspondência de padrões e de passagem entre grafos em grande escala armazenados no OneLake.

Considerações de dimensionamento para gráficos e bancos de dados relacionais

  • Bancos de dados relacionais: Normalmente, tendem a escalar verticalmente (em máquinas maiores) e podem ser escalados horizontalmente por meio de fragmentação e replicação. A fragmentação de esquemas altamente conectados é complexa e pode causar 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 um banco de dados de grafo ou um banco de dados relacional

Use um banco de dados de grafo se:

  • Seus dados são altamente conectados e possuem relacionamentos complexos (redes sociais, grafos de conhecimento e 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 com gráfico e bancos de dados relacionais

Muitos projetos usam ambos os tipos de bancos de dados: 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. No Microsoft Fabric, você pode combinar o grafo com outros armazenamentos de dados no mesmo workspace, fornecendo funcionalidades relacionais e de grafo sem mover dados entre sistemas separados.