Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type :...

16
Mohamed-Amine Baazizi – email: pré[email protected] h9p://www-bd.lip6.fr/wiki/site/enseignement/master/ bdle/start Bases de données graphes

Transcript of Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type :...

Page 1: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Mohamed-AmineBaazizi–email:

pré[email protected]://www-bd.lip6.fr/wiki/site/enseignement/master/

bdle/start

Bases de données graphes

Page 2: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Les données graphes

•  Les graphes sont partout – Réseaux sociaux ou de transports–  Interactions de protéines– Recommandation en ligne

Page 3: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Les traitements sur les graphes

•  Requêtes topologiques – Les amis des amis – La station la plus proche – Les utilisateurs ayant commandé un même article

•  Analyses en mode batch– Détection des cluster (communautés)– Calcul de statistiques globales (eg. Page Rank)

Page 4: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Systèmes de Gestion Données graphe

•  Systèmes transactionnels – Accès online (OLTP)– Systèmes natifs ou sur couche du relationnel– Eg. Oracle, Neo4j, OrientDB

•  Systèmes analytiques – Accès en mode batch (OLAP)– Le plus souvent distribués – Eg. Giraph, GraphX, Pegasus

Page 5: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Limite des systèmes relationnels•  SQL récursif (cours précédent)•  Inconvénients :

– Modèle de données rigide, liens implicites – Requêtes complexes, expliciter les liens avec joins– Performances dégradées

•  Alternative: systèmes natifs – Modèle orienté graphe : graphe de propriétés – Primitives de requêtes explicitant les liens – Moteurs d’exécution optimisés

Page 6: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Exemple d’un système natif : Neo4J 

•  Système NoSQL orienté graphes•  Alternative aux extensions des BD SQL•  Projet débuté en 2000, 1re version en 2010•  Version open source et version commerciale•  Différents cas d’usage :

– Recommandation– Détection de fraude

Page 7: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Graphe de propriétés

•  Type : étiquette – NType (RType) : types pour les nœuds (relations)•  Propriété : clef/valeur•  Valeur : boolean, numeric, String, Liste de valeurs.

•  Pour chaque Nœud ou Relation associer ensemble de types et ensemble de propriétés

Person, Employee {name : Jim, age : 47'}

Project {title : Graph Databases town : Paris, duration:6}

COORDINATES {since :02/03/2013}

Types

Propriétés

Page 8: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Graphe de propriétés : illustration

Person, Employee

{name : Jim, age : 47} Person, Employee {name : Sally, age : 28}

MANAGER, WORKS_WITH {since : 01/09/2015}

Project {title : Graph Databases town : Paris}

Person, Employee {name : John, age : 30}

Department {name : 4FUTURE}

Page 9: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Cypher

•  langage déclaratif•  interrogation et manipulation de graphes de

propriétés•  pattern matching pour spécifier motifs de

graphes comme Sparql•  langage non fermé : sémantique définie avec

liaisons

Page 10: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Interrogation avec Cypher

•  MATCH : motif recherché•  WHERE : filtre sur le résultat•  RETURN : formatage du résultat•  LIMIT : restriction de la taille du résultat•  ORDER BY : tri du résultat

Page 11: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Interrogation avec Cypher : motifs de graphe

•  Match(m) où m = MN|MR, … , MN|MR  •  MN = motif de nœuds, liaison de variables 

(var)(var : NType1 : … : NTypen )(var : NType1 : … : NTypen { cle : val, … } )

(n)(n: Person)(n: Person:Employee)(n: Projet {town: ’Paris’})

Person, Employee {name : Jim, age : 47'}

Project {title : Graph Databases town : Paris, duration:6}

Page 12: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Interrogation avec Cypher : motifs de graphe

•  Match(m) où m = MN|MR, … , MN|MR  •  MR = motif de relations

MN - [motif de chemin] -> MN MN <- [motif de chemin] - MN MN - [motif de chemin] - MN

Page 13: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Interrogation avec Cypher : motifs de graphe

•  Match(m) où m = MN|MR, … , MN|MR  •  MR = motif de relations

MN - [motif de chemin] -> MN MN <- [motif de chemin] - MN MN - [motif de chemin] - MN

•  Match(m) où m = MN, …,MN, MRS, …, MRS  •  MR = motif de relations simplifié

var - [motif de chemin] -> var var <- [motif de chemin] - var var - [motif de chemin] - var

Page 14: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Interrogation avec Cypher : motifs de chemin

Taille fixe vide:RType:RType {cle:val, …}:RType1|RType2

•  Exemples(a)  - -> (b)(a) - [:Coordinates]->(b)(a)  - [:Coordinates {since:’txt’}]->(b)(a) - [:Manage | :Works_with] -> (b)

Person, Employee {name : Jim, age : 47'}

Project {title : Graph Databases town : Paris, duration:6}

COORDINATES {since :02/03/2013}

Page 15: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

Interrogation avec Cypher : motifs de chemin

Taille variablebound: *, num ..*, *..num, *num..num :Rtype bound

•  motifs de chemins : –  (u)-->(z)<--(v), (u)-->()<--(v), (u)--(v) –  (u) - [*2] → (v) équivalent à (u) → () → (v) –  (u) - [*3..5] → (v) : longueur entre 3 et 5

(relations) –  (u) - [*3..] → (v) : chemin de longueur

minimum 3 –  (u) - [*..5] → (v) : chemin de longueur

maximum 5 –  (u) - [*] → (v) : n'importe quelle longueur

•  Exemples(x) - [*]- (y)(x) - [:KNOWS*1..2] - (y)

Page 16: Bases de données graphes - Laboratoire d'informatique de ... · Graphe de propriétés • Type : étiquette – NType (RType) : types pour les nœuds (relations) • Propriété

DémodeNeo4J

•  Téléchargersurh9ps://neo4j.com/•  Lancerledaemon:./bin/neo4jconsole•  Ouvrirl’interfacegraphiquedepuisvotrenavigateur:localhost:7474

•  ConsulterladocumentaPon