IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Modéliser un gros graphe


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 62
    Points : 77
    Points
    77
    Par défaut Modéliser un gros graphe
    Bonjour, j'ai l'intention de créer un gros graphe, doté de plusieurs millions de sommets (voir plus, peut-être, un jour) et je compte utiliser PostGreSQL (mais c'est un détail).

    J'ai lu avec attention le tutoriel de SQLpro sur les représentation intervalaires d'arborescences, mais évidemment, le concept ne s'applique pas dans mon cas, étant donné que le chemin est de taille non fixé.

    Ce graphe devra répondre au cahier des charges suivant :
    - Beaucoup d'update
    - Beaucoup de select
    - Pas mal de delete
    - Une base pouvant à terme compter plusieurs Go de données.

    Pour info, les sommets comporteront une information pesant peu en taille.

    Donc questions :
    - PSQL possède t-il un type graphe, ou un type spécial pouvant aider (j'ai pas trouvé dans la doc)
    - Parmi les liens que l'on peu trouver sur google, quel sont ceux qui paraissent le plus sérieux ?
    - Des conseils éventuels ?
    - Comment optimiser les indexs ?

    Merci !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Il n'existe pas de modèle particulier pour les graphes. Il faut donc créer une table d'adjacence avec deux colonnes (départ, arrivée) et les éventuels attributs.

    Si votre SGBDR implémente la CTE (norme SQL:1999) alors il est possible de faire des parcours de graphes avec SQL.
    A ma connaissance la CTE est implémentée sur SQL server 2005 et IBM DB2.
    Lisez l'article que j'ai écrit à ce sujet :
    http://www.sqlservercentral.com/columnists/fBROUARD/recursivequeriesinsql1999andsqlserver2005.asp

    A +

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 62
    Points : 77
    Points
    77
    Par défaut
    Merci pour ta réponse.

    Je me rend compte, suite à ta réponse, qu'un SGBD traditionnel deviendra rapidement problématique.
    Il va falloir que je développe un petit SGBDR adapté aux graphes....

    Vu que je viens de me poser le problème il ya 5 minutes, je vois ça comme ça (je pense le faire en GPL).

    1/ Un système à noeud avec seeking, en faisant en sorte que les noeuds proches soient en série sur le disque. (en fait c un problème de projection de dimension N en dimension 1). Cela nécessitera de réorganiser le graphe régulièrement.

    2/ Chaque noeud est géolocalisé dans un espace vectoriel en dimension N (N à fixer : 3,4,5 ?). On utilise un découpage en zone hypercubique arborescente. On localise grâce à un logarithme.
    3/ Un système de hashage, afin de faire des recherches
    4/ Un minimum de fonction méta graphe (liste de sous-graphes/domaines, découpage, jointure, etc...)


    Et zut... Moi qui voulait éviter ça.
    Je pense quand même utilser Postgre, au début.

    L'article est très intéressant.

    Citation Envoyé par SQLpro
    Il n'existe pas de modèle particulier pour les graphes. Il faut donc créer une table d'adjacence avec deux colonnes (départ, arrivée) et les éventuels attributs.

    Si votre SGBDR implémente la CTE (norme SQL:1999) alors il est possible de faire des parcours de graphes avec SQL.
    A ma connaissance la CTE est implémentée sur SQL server 2005 et IBM DB2.
    Lisez l'article que j'ai écrit à ce sujet :
    http://www.sqlservercentral.com/colu...server2005.asp

    A +

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Si tes données sont très graphes et peu gestion, laors le mieux est de faire une appli dédiée effectivement.

    A +

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 62
    Points : 77
    Points
    77
    Par défaut
    Mes données, sont effectivement exclusivement graphe et pas du tout gestion...

    Cela m'étonne tout de même : il y a bien quelqu'un qui a inventé un sgbd et un langage "à la SQL" pour manipuler des graphes tout de même ?

    Ce genre de choses devrait avoir une grande utilité en entreprise, non ?

    Citation Envoyé par SQLpro
    Si tes données sont très graphes et peu gestion, laors le mieux est de faire une appli dédiée effectivement.

    A +

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    non !

    peu...


    A +

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 62
    Points : 77
    Points
    77
    Par défaut
    C'est un débat passionant ça ;-)

    Dans une entreprise, les informations contenues dans le SI sont en générales arborescente, non ?
    Pour ma part, c'est ce que j'ai toujours constaté...
    (voir aussi le formidable succès de XML)

    Quand on connecte des arbres entre eux, on constitue parfois des graphes. Il est vrai qu'en entreprise on a une forte prédominance des arbres sur les graphes.

    Donc, les SGBD gérant des arborescences (eventuellement des graphes) devraient être très utile en entreprise...
    Et je me demande si le modèle relationnel n'est pas un inadapté pour cela.

    Citation Envoyé par SQLpro
    non !

    peu...


    A +

Discussions similaires

  1. [RDF] Ma première modélisation d'un graphe RDF
    Par geforce dans le forum Web sémantique
    Réponses: 5
    Dernier message: 10/09/2014, 11h23
  2. Modélisation en graphe (flux, flots,etc)
    Par touftouf57 dans le forum ALM
    Réponses: 0
    Dernier message: 21/10/2011, 01h38
  3. Dijkstra sur un très gros graphe
    Par ElSpopo dans le forum Général Java
    Réponses: 9
    Dernier message: 16/06/2010, 02h23
  4. Modéliser les noeuds et les arcs d'un graphe
    Par mimosa803 dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 31/10/2009, 17h11
  5. Modélisation de graphes de dépendances
    Par ZZelle dans le forum Outils
    Réponses: 2
    Dernier message: 27/07/2007, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo