Neo4j : Exploitation de graphe

Base de donnée relationnelle vs base graphe

Un exemple en SQL classique :

Dans un cas classique avec des relations entre deux tables on effectue une jointure:

En graphe, on ne parcourt que les nœuds qui nous intéressent :

  • On retire la table qui contenait les clefs étrangères.

  • On lie les données (qui deviennent des nœuds) directement à l'aide d'une relation.

DéfinitionNœuds et relations

Nœud : Un nœud est un des deux types d'objets dans lesquels sont stockées les données avec Neo4j. Ils peuvent porter un label et des propriétés. Chaque nœud dispose de pointeurs physiques menant directement à ses nœuds voisins.

Relation : Une relation est un objet reliant 2 nœuds. Dans le cas de Neo4j elle est forcément uni-directionnelle. Elle peut également porter des propriétés.

FondamentalPoint de départ de la recherche

Dans une base graphe on fait les recherches à partir d'un point de départ. C'est le seul nœud qui est recherché en parcourant un index. Les autres parcours se font directement par le biais des pointeurs physiques depuis chaque nœud parcouru.

Une fois le premier nœud trouvé en parcourant l'index le parcours du graphe se fait en un temps constant, indépendamment de la taille du graphe.

Il n'y a pas d'opérations ensemblistes qui diminuent la performance comme on le voit avec les opérations de jointure dans les SGBDR.

RemarqueThéorie des graphes

La représentation sous forme de graphe permet d'appliquer de nombreux algorithmes qui leur sont propres (Dijkstra, Bellman etc... CF Cours RO03)

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Clément Henry, 2015 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)