Problème de l'identification et des structures en graphe

Si on manipule des données représentées en graphe, alors l'identification par les données implique de faire une requête pour chaque recherche dans le graphe, ce qui est potentiellement coûteux.

Exemple

Soit une application Web reposant sur un graphe d'utilisateurs et qui souhaite afficher sur chaque page consultée (une page concerne un utilisateur) les utilisateurs qui lui sont connectés.

Si l'application repose sur une base de données relationnelle, elle devra à chaque accès à une page faire une requête au serveur pour chercher qui sont les utilisateurs connectés par le graphe.

  1. J'accède à Alice : je fais une requête qui remonte les données relatives à Alice et aux utilisateurs qui lui sont liés (Bob et Charlie)

  2. J'accède à Bob : je dois faire une nouvelle requête pour obtenir les données relatives aux utilisateurs liés à Bob

1
SELECT *
2
FROM links l JOIN users u
3
ON l.user2=u.id
4
WHERE l.user1='bob'

Fondamental

Si les données étaient identifiables selon une autre méthode, par exemple ici, si chaque utilisateur disposait d'un pointeur sur l'adresse physique de chacun de ses utilisateurs liés, alors on pourrait obtenir ces données beaucoup facilement.