Les bases orientées graphes
Le graphe de propriétés : nœuds, relations orientées et typées, étiquettes, propriétés ; modéliser un domaine en graphe, parcourir de voisin en voisin sans jointure, et les usages.
- 25 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Base orientée graphes : de quoi s'agit-il ?
Voir la réponse
Base dont les données sont des entités reliées entre elles, et qui garde ces liens directement attachés aux entités pour les suivre sans recalcul.
Les liens sont des données de premier rang, déjà stockées : suivre une relation coûte le même prix, que la base contienne mille ou cent millions de nœuds.
Dans ce graphe d'amitiés (relations
AMIdans les deux sens), quels sont les amis d'amis de Léa, c'est-à-dire à deux sauts, sans Léa ni ses amis directs ?
```text
Léa – Sam
Léa – Inès
Sam – Inès
Sam – Noé
Inès – Zoé`- Noé et Zoé
- Sam et Inès
- Noé seulement
- Sam, Inès, Noé et Zoé
Voir la réponse
Noé et Zoé
Les amis directs de Léa sont Sam et Inès (un saut). Leurs amis sont Léa, Inès, Noé (pour Sam) et Léa, Sam, Zoé (pour Inès). Une fois Léa, Sam et Inès écartés, il reste Noé et Zoé.
Dans un graphe de propriétés, une relation a toujours un … (elle va d'un nœud à un autre) et un … (par exemple
AMIouA_REALISE).Voir la réponse
Dans un graphe de propriétés, une relation a toujours un sens (elle va d'un nœud à un autre) et un type (par exemple
AMIouA_REALISE).Le sens a de l'importance :
(a)-[:A_REALISE]->(f)dit queaa réaliséf, pas l'inverse. Une relation symétrique, comme une amitié, se lit dans les deux sens à la requête.Graphe de propriétés : de quoi s'agit-il ?
Voir la réponse
Modèle fait de nœuds et de relations orientées et typées, chaque nœud ou relation pouvant porter des propriétés nom-valeur.
Dans
(:Personne {nom:'Keanu'})-[:A_JOUE_DANS {role:'Neo'}]->(:Film), la relation a un type, un sens et sa propre propriété,role.« Amis d'amis d'amis » prend 30 secondes en SQL, avec trois auto-jointures sur 50 millions de lignes. Quelle est la cause, et la solution ?
- La table n'a pas assez de colonnes ; il faut en ajouter une par saut
- SQL ne peut pas parcourir de relations ; il faut stocker le résultat dans un champ JSON
- Les amitiés sont stockées dans le mauvais sens ; il suffit de les inverser
- Chaque saut refait une jointure sur toute la table ; un graphe suit les voisins
Voir la réponse
Chaque saut refait une jointure sur toute la table ; un graphe suit les voisins
SQL sait faire la requête, mais chaque auto-jointure parcourt une grande table avec un index. Dans un graphe, on part d'un nœud et on suit les relations directement : le travail suit le nombre de voisins rencontrés.