Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
Esta funcionalidade está atualmente em pré-visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Neste artigo, comparamos bancos de dados gráficos e bancos de dados relacionais, destacando as principais diferenças, casos de uso e vantagens na análise. Você pode avaliar se deseja usar o Graph for Microsoft Fabric ou um banco de dados relacional com base em suas necessidades específicas.
Um banco de dados gráfico armazena e consulta dados como uma rede de nós (entidades) e bordas (relações), tornando-o fundamentalmente diferente do formato de tabelas e linhas de bancos de dados relacionais. Os bancos de dados gráficos se destacam na modelagem e análise de dados altamente conectados, como redes sociais, gráficos de conhecimento, sistemas de recomendação e deteção de fraudes.
Principais diferenças
- 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. 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: uniões versus percursos
Consultas de banco de dados relacional: Os dados em diferentes tabelas 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 relacionamentos simples, mas pode se tornar caro e complexo para conexões profundas ou de comprimento variável.
Consultas de banco de dados gráfico: As relações são armazenadas como bordas, permitindo a travessia direta 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.
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 ISO para bancos de dados gráficos, projetada para consulta e manipulação eficientes de dados estruturados em gráficos. O mesmo grupo de trabalho internacional que supervisiona o SQL está a desenvolvê-lo.
Implicações no desempenho
Os bancos de dados gráficos podem superar os sistemas relacionais para consultas que envolvem muitas bordas ou profundidades desconhecidas, especialmente para análises de links profundos 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
- Bases de dados relacionais: Normalmente dimensiona verticalmente (máquinas maiores) e pode ser dimensionado horizontalmente por meio de fragmentação e replicação. O compartilhamento de esquemas altamente conectados é complexo e pode incorrer em 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 usar cada
Use um banco de dados gráfico 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 um banco 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 usam ambos: um banco de dados relacional para dados transacionais principais e um banco de dados gráfico para recursos especializados de análise ou análise de rede.