Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Introduction aux graphes

No description
by

Nabil Belakbir

on 2 October 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Introduction aux graphes

Pourquoi on parle de graphe ?
Neo4J comme Implémentation de Graphe
BOF : Introduction aux graphes - PART1
INTRO
Use Case
Présentation Neo4j
Neo4J et JAVA
Deux modes possibles :
Neo4J et Spring Data
Cypher
END PART 1
Proposition PART2 :
L'autre face de l'E-Banking : Use case modélisation graphe .
Zoom sur la théorie des graphes et les algorithmes de prédiction et de recommandation
Relational VS Graph
Points de différences
Les performances des RDBMS diminuent en relation avec le nombre de lignes dans la table.

Les performances de base de données de graphe réduit par rapport au nombre de liaisons entre chaque noeud.

Les graphes connectent les données.

les RDBMS connectent les tables.

En graphe on a un Mapping fidèle (1To1) à la réalité des données
By Nabil Belakbir
Twitter : @nabilblk

Problème
Réponse relationelle
Réponse Graphe
Un langage de Pattern matching de Graphe
Il se veut déclaratif
Les resultats sont représentés en collones
Pattern Matching Graph
Tu ne connais pas les noeuds , ni les relations
En Cypher :
() --> ()
Tu ne connais pas la relation
En Cypher :
(OCTO) --> (AWB)
OCTO
AWB
En Cypher :
(OCTO) -[:conseille]-> (AWB)
OCTO
AWB
conseille
Pattern Matching Graph
Label directed Relationships
Pattern Matching Graph
Pattern Matching Graph
En Cypher :
(OCTO) --> (AWB) --> (ONA)
OCTO
AWB
ASII ART PATTERN
ONA
Pattern Matching Graph
En Cypher :
(OCTO) --> (AWB) --> (ONA),
(OCTO) --> (ONA)
OCTO
AWB
ASII ART PATTERN
ONA
Meilleur
(OCTO) --> (AWB) --> (ONA)<--(OCTO)
Pattern Matching Graph
En Cypher :
(OCTO) -[*]-> (AWB)
OCTO
AWB
Chemin variable
OCTO
AWB
OCTO
AWB
Pattern Matching Graph
En Cypher :
(OCTO) -[?]-> (AWB)
OCTO
AWB
Relation optionelle
Relational VS Graph
* Basé sur des fondations mathématiques .
* Schéma prédéfini.
* les structures de données sont representées à travers des tables.
* l'association des données des tables est faites à travers des Joins.

* Basé sur des fondations mathématiques liés à la théorie des graphes.

* Tous est définis comme noeuds , propriétés et relations.

* Concerne essentielement les associations et non pas la structure .

* Supporte naturellement de l'information hyper-connecté

* La théorie des graphe est un sous ensemble de la théorie des ensembles, donc tous ce qui est applicable dans les ensembles est applicable dans les graphes.

* Une représentation réelle des données (One to One avec le Objets Métier)
Positionnement des bases graphes dans la sphère Nosql
Graphes
Modèle riche
Structure de données connectées
Modèle expressif
Exploration Performante
Modèle dé-normalisé
Modèle de donnée simple
Outillage pour le traitement
(En général Map/Reduce)
Mon modèle évolue
Is_Subdiary
Company
Like
The Wisdom Of the graph

Fondée 2000
En production depuis 2003
100,000+ utilisateurs actifs, 40,000 downloads chaque mois
Présence : US, UK, Allemagne et Suede Sweden
Grande communauté de developpeur (1er India)
Moteur de persistance JAVA Embedded, basé sur du File System , et Transactionnel qui stocke les données sous forme de graphe .
Ce que dit Thoughtworks
Adopt
neo4j
Hadoop 2.0
Trial
REST
EMBEEDED
Deux utilisations possibles :
API Neo4j
Spring-Data-Neo4j
Performant
Verbeux
Spring Style
Perf
Apparemment c'est plus le cas sur la 2.0
Node
Relationships
Repository
The Great
EULER
Triadic Closure
Relations faibles
A
B
C
A
B
C
Est_Ami
Est_Ami
Est_Ami
Est_Ami
Est_Ami(50%)
On peut supporter le concept des relations faibles en jouant sur les propriétés des relations
Les relations faibles servent à batir et faire naître des associations et de rendre l'information plus connectée.
Et Donc !?
Pour des problématiques purement graphes (Logistique , plus court chemin , graphe social ) il n'ya pas de débat .
Graph is the way to go
Polyglot Persistence
stoic.com ont 4 store pour leur plateforme :
Redis
MongoDb
ElasticSearch
Postgresql
RDBMS
Documents
Documents
cléfs/Valeur
A
B
C
Est_Ami
Est_Ami
A
B
C
Est_Ami
Est_Ami
Est_Ami(50%)
Modèle réel
Modèle spéculatif
Prediction is here
Requête complète Cypher
start doctor=node:characters(character = 'Doctor')
match (doctor)<-[:COMPANION_OF]-(companion)
-[:APPEARED_IN]->(episode)
return companion.character, count(episode)
order by count(episode) desc
limit 5
Noeud de départ
Graph Pattern
Resultat
Ordre et limite
ASCII ART Pattern
Algorithme adaptable
DATAVIZ
*) vimeo.com/45124107
www.asciiflow.com/#Draw
*
RDBMS
Graphe
Document
clé-valeur
Collonnes
Full transcript