Partilhar via


Comparar gráficos e bancos de dados relacionais

Observação

Esta funcionalidade está atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem estar sujeita a um acordo de nível de serviço e não é adequada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.

Este artigo compara bases de dados de grafos e bases de dados relacionais. Destaca as principais diferenças, casos de uso e vantagens na análise de dados. Use esta informação para decidir se deve usar o grafo no Microsoft Fabric ou uma base de dados relacional para as suas necessidades específicas.

Uma base de dados de grafos armazena e consulta dados como uma rede de nós (entidades) e arestas (relações). Esta abordagem torna-a fundamentalmente diferente do formato de tabelas e linhas das bases de dados relacionais. As bases de dados de grafos funcionam bem para modelar e analisar dados altamente conectados, como redes sociais, grafos de conhecimento, sistemas de recomendação e deteção de fraude.

Diferenças centrais

  • Bases de dados gráficas: Organize os dados como nós e bordas, armazenando relações explicitamente. Percorrer conexões é eficiente e, muitas vezes, independente do tamanho total do conjunto de dados.
  • Bases 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, estas operações podem tornar-se complexas e lentas.

Consultando relações: uniões versus percursos

Consultas à base de dados relacionais: Chaves estrangeiras ligam dados em diferentes tabelas. Para recuperar dados relacionados, os bancos de dados relacionais usam operações JOIN para combinar linhas de várias tabelas. Este método funciona bem para relações simples, mas pode tornar-se caro e complexo para ligações profundas ou de comprimento variável.

Consultas a bases de dados de grafos: Armazenar as relações como arestas, de forma a poder atravessar diretamente de um nó para outro. As consultas em grafos podem navegar eficientemente através de múltiplos saltos e padrões complexos. Linguagens de consulta de gráficos como GQL facilitam a expressão de traversais e correspondência de padrões.

Exemplo:

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 pela ISO para bases de dados de grafos. Foi concebido para consultas e manipulação eficientes de dados estruturados em grafos. O mesmo grupo de trabalho internacional que supervisiona o SQL está a desenvolvê-lo.

Implicações no desempenho

As bases de dados de grafos podem superar sistemas relacionais para consultas que envolvam muitas arestas ou profundidades desconhecidas, especialmente para análise de ligações profundas ou consultas recursivas. As bases de dados relacionais destacam-se em operações orientadas a conjuntos e agregações devido a décadas de otimização.

Considerações sobre o dimensionamento

  • Bases de dados relacionais: Normalmente escalam verticalmente (máquinas maiores) e podem escalar horizontalmente através de fragmentação e replicação. A fragmentação de esquemas altamente conectados é complexa e pode causar sobrecarga entre redes.
  • Bases de dados gráficas: Dimensione vertical e horizontalmente. Bancos de dados gráficos distribuídos particionam gráficos entre máquinas, com o objetivo de manter os nós relacionados juntos para travessias eficientes.

Quando utilizar cada seringa

Use uma base de dados de grafos se:

  • Seus dados são altamente conectados e cheios de relacionamento (redes sociais, gráficos de conhecimento, recomendações).
  • Você precisa atravessar um número desconhecido ou variável de saltos.
  • O esquema está evoluindo ou semi-estruturado.
  • Você quer modelagem intuitiva para domínios onde os relacionamentos são centrais.

Use uma base de dados relacional se:

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

Abordagens híbridas

Muitos projetos utilizam ambos os tipos de bases de dados: uma base de dados relacional para dados transacionais centrais e uma base de dados de grafos para funcionalidades especializadas de análise de análise ou redes.