LMI MAG 4 Sept 2020 - Flipbook - Page 55
affaires comprennent intimement les graphes puisque
l’Internet est un graphe interconnecté par des hyperliens et des concepts comme celui « d’amis » et « d’amis
d’amis » des réseaux sociaux. Alors, pour quelle raison
leurs équipes de développement ne sont-elles pas plus
nombreuses à utiliser des bases de données graphiques
dans leurs applications ?
Apprendre les langages de requête des bases
de données graphiques
© Matt Biddulph/CC BY-SA 2.0
Si la compréhension des relations utilisées dans les
bases de données graphiques peut être relativement
facile, leur interrogation nécessite l’apprentissage de
nouvelles pratiques et compétences. Voici, à titre
d’exemple, un calcul de liste « d’amis » et « d’amis d’amis ».
Il y a quinze ans, Isaac Sacolick a cofondé un réseau social
de voyage et, afin d’avoir un modèle de données simple,
il avait tout stocké dans MySQL. La table dans laquelle
était stockée la liste d’utilisateurs incluait une fonction
d’auto-adhésion pour représenter les amis, et il était
assez simple d’extraire la liste d’un ami. Mais pour accéder à la liste d’un ami d’ami,
il fallait une requête monsQUEL SGBD POUR
QUEL USAGE ?
trueusement complexe qui
fonctionnait, mais n’était pas
Comparatif
performante quand les réseaux d’utilisateurs étaient
étendus. Pour améliorer cette
requête « d’amis d’amis », Isaac
Sacolick a consulté Jim Webcutt.ly/SGBD
ber, responsable scientifique
de Neo4j (une base de données graphiques bien établie
parmi d’autres). Les développeurs peuvent interroger
les bases de données graphiques de Neo4j en utilisant
RDF (Resource Description Framework) et Gremlin,
mais selon M. Webber, plus de 90 % des clients utilisaient Cypher.
Voilà à quoi ressemble la requête dans Cypher pour
l’extraction « d’amis » et « d’amis d’amis » :
MATCH (me:Person {name:’Rosa’})-[:FRIEND*1..2]
->(f:Person) + WHERE me
f + RETURN f
Et voilà comment comprendre cette requête :
- Trouvez-moi le modèle où il y a un nœud avec le label
« Person » et un nom de propriété : « Rosa », et liez cela
à la variable « me ». La requête spécifie que « me » a une
relation FRIEND sortante de niveau 1 ou 2 avec tout autre
nœud avec un label « Person », et lie ces correspondances
à la variable « f ».
- Assurez-vous que « me » n’est pas égal à « f », car je suis
un ami de mes amis !
- Retournez tous les « amis » et « amis d’amis ».
La requête est élégante et efficace, mais sa courbe d’apprentissage est importante pour les personnes habituées
à écrire des requêtes SQL. C’est là que se situe le premier
défi pour les entreprises qui s’intéressent aux bases de
données graphiques : le SQL demande des compétences
étendues, mais pour utiliser Cypher et d’autres langages de requête de graphes, il faut aussi acquérir de
nouvelles compétences. [Lire l’intégralité de l’article sur
lemondeinformatique.fr]
APPROFONDIR
ÉCOUTER EN LIGNE
Podcast
cutt.ly/developpeurs-graph-podcast
Les bases de données de graphes comme Neo4j sont idéales
pour modéliser des relations complexes - et elles se
déplacent à travers le big data à la vitesse de l’éclair.
LIRE EN LIGNE
Article
cutt.ly/developpeurs-graph-article
55