Partager via


Comparer des bases de données graphiques et relationnelles

Note

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service, et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure.

Dans cet article, nous comparons les bases de données de graphe et les bases de données relationnelles, en mettant en évidence les principales différences, les cas d’usage et les avantages de l’analytique. Vous pouvez évaluer s’il faut utiliser Graph pour Microsoft Fabric ou une base de données relationnelle en fonction de vos besoins spécifiques.

Une base de données de graphe stocke et interroge les données en tant que réseau de nœuds (entités) et de bords (relations), ce qui le rend fondamentalement différent du format tables et lignes des bases de données relationnelles. Les bases de données graphes excellent lors de la modélisation et de l’analyse des données hautement connectées, telles que les réseaux sociaux, les graphiques de connaissances, les systèmes de recommandation et la détection des fraudes.

Différences principales

  • Bases de données graphes : Organisez les données en tant que nœuds et arêtes, stockant explicitement les relations. La traversée des connexions est efficace et souvent indépendante de la taille totale du jeu de données.
  • Bases de données relationnelles : Organisez les données dans des tables avec des lignes et des colonnes. Les relations sont déduites au moment de la requête à l’aide d’opérations JOIN, qui peuvent devenir complexes et lentes pour les données hautement connectées.

Interrogation des relations : jointures et traversées

Requêtes de base de données relationnelles : Les données de différentes tables sont liées par le biais de clés étrangères. Pour récupérer des données associées, les bases de données relationnelles utilisent des opérations JOIN pour combiner des lignes de plusieurs tables. Cela fonctionne bien pour les relations simples, mais peut devenir coûteux et complexe pour les connexions profondes ou de longueur variable.

Requêtes de base de données Graph : Les relations sont stockées sous forme de bords, ce qui permet un passage direct d’un nœud à un autre. Les requêtes de graphes peuvent parcourir efficacement plusieurs sauts et des modèles complexes. Les langages de requête graphes comme GQL facilitent l’expression des traversées et des correspondances de modèles.

Exemple :

GQL :

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

SQL (équivalent) :

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';

Note

GQL est un langage de requête standardisé ISO pour les bases de données de graphe, conçu pour interroger et manipuler efficacement des données structurées par graphique. Le même groupe de travail international qui supervise SQL le développe.

Implications en matière de performances

Les bases de données graphes peuvent surpasser les systèmes relationnels pour les requêtes impliquant de nombreux bords ou profondeurs inconnues, en particulier pour les requêtes d’analyse de lien profond ou récursives. Les bases de données relationnelles excellent dans les opérations et agrégations orientées sur les ensembles en raison de décennies d’optimisation.

Considérations relatives à la mise à l’échelle

  • Bases de données relationnelles : Généralement, se mettent à l’échelle verticalement (machines plus grandes) et peuvent se mettre à l’échelle horizontalement via le partitionnement et la réplication. Le partitionnement de schémas hautement connectés est complexe et peut entraîner une surcharge entre réseaux.
  • Bases de données graphes : Effectuez une mise à l’échelle verticalement et horizontalement. Les bases de données de graphes distribuées partitionnent les graphes sur plusieurs machines, avec pour objectif de maintenir les nœuds associés ensemble pour des parcours efficaces.

Quand utiliser chaque

Utilisez une base de données Graph si :

  • Vos données sont hautement connectées et gourmandes en relations (réseaux sociaux, graphiques de connaissances, recommandations).
  • Vous devez parcourir un nombre inconnu ou variable de tronçons.
  • Le schéma évolue ou est semi-structuré.
  • Vous souhaitez une modélisation intuitive pour les domaines où les relations sont centrales.

Utilisez une base de données relationnelle si :

  • Vos données sont principalement tabulaires ou correspondent à une structure bien définie.
  • Vos requêtes impliquent des agrégations lourdes ou des opérations sur de grands ensembles.
  • Vous disposez d’outils ou d’expertises existants alignés sur SQL.

Approches hybrides

De nombreux projets utilisent à la fois : une base de données relationnelle pour les données transactionnelles principales et une base de données de graphe pour des fonctionnalités d’analyse spécialisée ou d’analyse réseau.