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 :

Arbres intervallaires - gestion de plusieurs arbres


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 105
    Points
    105
    Par défaut Arbres intervallaires - gestion de plusieurs arbres
    Bonjour à tous,

    Je suis en train de mettre en place une gestion d'arbres par représentation intervallaire (grâce à l'excellent article de sqlPro ici). Je vais pouvoir ainsi gérer la structure de différents types de documents. J'ai prévu de faire un arbre par type.


    Première question, on est bien d'accord que si j'ai deux arbres, mon premier arbre a la borne gauche 1 et la borne droite 20, mon deuxième arbre les bornes 21 à 50, par exemple ?

    Ce qui me chagrine un peu, c'est que du coup si j'insère un texte dans le premier arbre, je vais mettre à jour les bornes du deuxième arbre (forcément) au risque d'y mettre le bazar.
    Je pourrai éventuellement ajouter un identifiant de document dans chaque arbre concerné pour pourvoir numéroter chaque arbre à partir de 1. Qu'en pensez-vous ?

    Merci,

    _Jnie_

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 792
    Points : 34 013
    Points
    34 013
    Billets dans le blog
    14
    Par défaut
    Peut-être que je me trompe mais j'ai l'impression que vous confondez identifiant du document et sa position dans un arbre. L'identifiant est unique et invariable. La position peut changer si on insère un document dans l'arbre.

    Du coup, puisque vous avez plusieurs arbres, je pense qu'ils doivent être indépendants et leur numérotation doit partir de 1, pour chacun d'eux. Si ce n'est pas le cas, alors cela voudrait dire qu'ils ne sont pas indépendants mais que l'un est un ensemble de branches de l'autre.

    Vous pouvez d'ailleurs modéliser vos arbres séparément des documents. Ainsi, si besoin, un document peut faire partie de plusieurs arbres. Les tables des arbres comporteront une clé étrangère référençant l'identifiant du document.

    Document -1,n----appartenir----0,n- arbre

    te_document_doc (doc_id, doc_reference, doc_titre, doc_date_creation...)
    te_arbre_arb (arb_id, arb_code, arb_nom...)
    tj_doc_appartenir_arb_daa (daa_id_document, daa_id_arbre, daa_borne_gauche, daa_borne_droite...)

    Voir aussi les cours et tutoriels de formation pour apprendre SQL : http://sql.developpez.com
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 105
    Points
    105
    Par défaut
    Je me suis mal expliqué mais dans la table te_arbre_arb je vois que vous avez un arb_code. C'est de ce code dont je parlais et que je dois certainement du coup retrouver dans chaque feuille et noeud de mon arbre non ?
    J'ai 2 arbres --> 2 arb_code ?

  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 716
    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 716
    Points : 52 380
    Points
    52 380
    Billets dans le blog
    4
    Par défaut
    Plusieurs possibilités :
    1) arbres côte à côte => plusieurs racine
    2) arbres "surarborés" => on rajoute un noeud à l'étage supérieur qui sera le point de départ de tous les arbres
    3) arbres indépendants => plusieurs tables a raison d'une table par arbre
    4) arbres entrelacés => on utilise une information supplémentaire qui identifie l'arbre (par exemple un ARB_ID en sus)
    etc...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 792
    Points : 34 013
    Points
    34 013
    Billets dans le blog
    14
    Par défaut
    dans la table te_arbre_arb je vois que vous avez un arb_code.
    C'était pour différencier la notion sémantique de "code", souvent alphanumérique, parfois signifiante (mnémotechnique) et susceptible de modifications et la notion d'identifiant qui est de type entier et invariable et qui constitue la clé primaire de la table et, par voie de conséquence, la clé étrangère dans les autres tables.

    C'est de ce code dont je parlais et que je dois certainement du coup retrouver dans chaque feuille et noeud de mon arbre non ?
    Ce que j'ai écrit doit répondre à votre question : Non !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 105
    Points
    105
    Par défaut
    Je vais certainement opter pour un identifiant d'arbre pour avoir une seule table mais des arbres indépendants commençant tous à une borne gauche à 1.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête ardue avec un arbre intervallaire
    Par renaud26 dans le forum Requêtes
    Réponses: 6
    Dernier message: 20/04/2011, 02h02
  2. Récupération d'un nœud d'un arbre intervallaire
    Par Wisvaton dans le forum Requêtes
    Réponses: 0
    Dernier message: 10/10/2010, 16h14
  3. Déplacement d'un élément dans un arbre intervallaire
    Par Larson dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/09/2008, 16h57
  4. Plusieurs arbres de jonction pour le même graphe .?
    Par Mouna85 dans le forum Mathématiques
    Réponses: 0
    Dernier message: 01/06/2008, 13h48
  5. notion d'arbre intervallaire
    Par nieleny dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/03/2008, 20h30

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