O SQL falha em 3+ saltos. Os GraphDBs não. Imagine encontrar todas as contas dentro de 3 saltos de uma transação suspeita. Ou ligar registos de clientes fragmentados entre sistemas por e-mails e números de telefone partilhados. Estas são consultas de travessia de grafo. O SQL pode lidar com relacionamentos, mas não com profundidade. Claro, você pode escrever CTEs recursivos e auto-junções. Isso funciona em 1-2 saltos. Mas ao ir mais fundo, duas coisas acontecem: - A consulta torna-se ilegível - E o desempenho despenca Cada salto adiciona outra auto-junção. Ao salto 5-6, você está olhando para consultas que demoram minutos e desmoronam sob carga. A mesma consulta em Cypher: 𝗠𝗔𝗧𝗖𝗛 (𝘁:𝗧𝗿𝗮𝗻𝘀𝗮𝗰𝘁𝗶𝗼𝗻 {𝗶𝗱: '𝗧𝗫𝗡-𝟬𝟬𝟭'})-[:𝗜𝗡𝗩𝗢𝗟𝗩𝗘𝗦*𝟭..𝟯]-(𝗮:𝗔𝗰𝗰𝗼𝘂𝗻𝘁) 𝗥𝗘𝗧𝗨𝗥𝗡 𝗗𝗜𝗦𝗧𝗜𝗡𝗖𝗧 𝗮.𝗻𝗮𝗺𝗲, 𝗮.𝗽𝗵𝗼𝗻𝗲 3 linhas. Lê-se como a pergunta que você está fazendo. Escala para qualquer profundidade. É para isso que os bancos de dados de grafos foram construídos. O FalkorDB é um que vale a pena conhecer. É de código aberto. E adota uma abordagem arquitetónica diferente em comparação com a maioria dos Graph DBs. A maioria dos bancos de dados de grafos persegue ponteiros de nó para nó durante a travessia. O FalkorDB não faz isso. É construído sobre o GraphBLAS, uma estrutura de álgebra linear que representa operações de grafo como cálculos de matriz esparsa. Cada salto torna-se uma operação de matriz otimizada. O resultado: - Melhor comportamento de cache - Cálculo paralelo entre saltos...