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

Looping Discussion :

Identifiant relatif présent en double dans une table de correspondance


Sujet :

Looping

  1. #1
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 968
    Points : 23 562
    Points
    23 562
    Par défaut Identifiant relatif présent en double dans une table de correspondance
    Bonjour,

    Voici un modèle de données :
    Nom : Sélection_042.png
Affichages : 64
Taille : 59,8 Ko

    Par le jeu des identifications relatives, quand je mets en correspondance (association CORRESPONDRE) un arbre (entité ARBRE) avec son équivalent numérique (entité ARBRE_NUMERIQUE), il se trouve que l'identifiant du point (attribut ID_POINT) qui arrive côté ARBRE est le même identifiant de point que celui qui arrive côté ARBRE_NUMERIQUE.

    Or, dans le modèle logique de données, je récupère deux identifiants de points différents (ID_POINT et ID_POINT1) dans la table CORRESPONDRE, après avoir coché la case "Générer une table de correspondance dans le MLD) :
    Nom : Sélection_043.png
Affichages : 66
Taille : 69,9 Ko

    Comment faire pour n'avoir qu'un seul ID_POINT dans la table de correspondance, vu que c'est le même identifiant issu des identifications relatives ?
    Le problème reste le même si je clique sur le bouton de création d'une entité de correspondance.

    Merci d'avance pour votre aide,

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 593
    Points : 29 077
    Points
    29 077
    Billets dans le blog
    16
    Par défaut
    Bonjour Ced,

    Selon votre MCD, puisque SCAN est identifié relativement à POINT qui lui-même est identifié relativement à OPERATEUR, SCAN hérite transitivement de l’identifiant de OPERATEUR. Par ailleurs, vous identifiez SCAN relativement à OPERATEUR : ça a un goût puissant de redondance !
    Commencez par supprimer l’identification relative de SCAN par rapport à OPERATEUR.
    Quoi qu’il en soit, au stade MLD la table SCAN comportera encore deux fois l’attribut id_operateur, ce qui peut se justifier si un scan peut être piloté par un opérateur qui n’est pas celui qui a numérisé.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 968
    Points : 23 562
    Points
    23 562
    Par défaut
    Merci pour l'aide proposée.

    C'est sûr que je n'ai pas fourni les règles de gestion, et notamment pas pour la partie opérateur. Mais ce n'est pas sur cette partie du modèle que porte ma question...
    Pour répondre à la remarque sur l'opérateur, ce n'est pas le même opérateur qui est responsable des informations collectées sur un point (d'où la relation entre POINT et OPERATEUR) et celui qui se charge de numériser (acquisition d'une image par LiDAR) le même point, à un moment différent dans le temps. Il faut donc une relation également entre SCAN et OPERATEUR.
    Attention, POINT n'est pas identifié relativement à OPERATEUR. Seul SCAN est identifié relativement à POINT (on réalise jusqu'à 4 scans LiDAR par point).

    En revanche, là où il pourrait y avoir de la redondance, c'est sur l'opérateur des scans d'un point. Mais ces scans d'un même point peuvent être faits à plusieurs dates par des opérateurs différents, d'où la relation entre OPERATEUR et SCAN.

    Le problème reste de toute façon le même, dans la table de correspondance entre arbres.

    Mais merci pour les remarques pertinentes !

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 593
    Points : 29 077
    Points
    29 077
    Billets dans le blog
    16
    Par défaut
    Je vous cite :

    Attention, POINT n'est pas identifié relativement à OPERATEUR. Seul SCAN est identifié relativement à POINT

    Et pourtant, selon le MCD, POINT est bien identifié relativement à OPERATEUR, autrement dit le MCD est à aménager.

    En attendant, toujours au vu du MCD actuel, ARBRE reste identifié relativement à OPERATEUR...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 968
    Points : 23 562
    Points
    23 562
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Et pourtant, selon le MCD, POINT est bien identifié relativement à OPERATEUR, autrement dit le MCD est à aménager.

    En attendant, toujours au vu du MCD actuel, ARBRE reste identifié relativement à OPERATEUR...
    Si c'est la flèche côté OPERATEUR, ce n'est pas une identification relative... Ce qui indique l'identification relative, c'est le (R) dans la patte de la relation.
    D'ailleurs, ID_OPERATEUR n'est pas dans ARBRE dans le MLD...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 968
    Points : 23 562
    Points
    23 562
    Par défaut
    OK, j'ai trouvé d'où venait la flèche : c'est l'identification d'une DF dans le MCD.
    Voici ce que ça donne en enlevant cette identification :
    Nom : Sélection_044.png
Affichages : 50
Taille : 59,5 Ko

    En tout cas, j'ai toujours ce problème de double ID_POINT alors que c'est le même point... Et comme, sous Looping, on n'a pas la main sur les colonnes générées automatiquement dans le MLD, je ne sais pas comment faire (si c'est faisable), sauf à changer le script SQL au moment de la création de la table...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 593
    Points : 29 077
    Points
    29 077
    Billets dans le blog
    16
    Par défaut
    Si c'est la flèche côté OPERATEUR, ce n'est pas une identification relative... Ce qui indique l'identification relative, c'est le (R) dans la patte de la relation.
    Mille excuses ! Vous avez raison.
    Un an sans Looping et confusion avec d’autres outils, ça ne pardonne pas, Paprick et Escartefigue comprendront...

    En son temps, le groupe 135 de l’Afcet avait traité des contraintes d’exclusion, inclusion, égalité, et sans doute est-on en présence de cette dernière.

    Je rappelle la définition de l’Afcet :

    Les relations R et S sont dites soumises à une condition d’égalité vis-à-vis d’une liste non vide (P, P’, ...) d’individus communs appelée « pivot » de la contrainte, si et seulement si R est incluse dans S, et S dans R, vis-à-vis de ce pivot.

    A approfondir avec Paprick.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

  8. #8
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 968
    Points : 23 562
    Points
    23 562
    Par défaut
    Aucun souci, en tout cas merci pour l'aide.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  9. #9
    Nouveau membre du Club
    Profil pro
    CTO
    Inscrit en
    juillet 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : CTO

    Informations forums :
    Inscription : juillet 2013
    Messages : 17
    Points : 30
    Points
    30
    Par défaut Un arbre peut il en cacher un autre ?
    L'arbre numérique ?
    De quoi s'agit-il ?
    Du produit d'un scan à partir d'un point stationné ?
    Du produit de plusieurs scans (cad dans des conditions différentes) à partir d'un même point stationné ?
    dito mais à partir plusieurs points stationnés ?
    Et les relations sont-elle bonnes !

  10. #10
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 968
    Points : 23 562
    Points
    23 562
    Par défaut
    Peu importe le sens des entités, c'est un domaine très spécifique.
    Le problème que je rencontre pourrait être présenté avec d'autres concepts... On pourrait les nommer A, B, C, etc., le problème serait le même.

    Je n'ai pas de souci avec les règles de gestion, ni les entités, ni les concepts qui ici importent peu. C'est avec la transformation du MCD en MLD en mettant en correspondance deux tables (les arbres) issues d’identifications relatives d'une même entité de départ (l'entité POINT).

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  11. #11
    Membre chevronné
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    juin 2019
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2019
    Messages : 538
    Points : 2 229
    Points
    2 229
    Par défaut
    Bonsoir,

    Effectivement, ce cas est intéressant.
    Je le comprends à plusieurs niveaux de préoccupation :
    • Tout d'abord au niveau purement conceptuel, d'après moi, le modèle proposé n'exprime pas le fait que le Id_Point issu de l'arbre doit forcément être le même que le Id_Point issu du Scan, et donc de l'arbre numérique. Si on veut exprimer cette égalité sur une partie de la clé primaire de Arbre et Arbre_Numérique, il faut le modéliser.
    • Les contraintes inter-associations classiques (exclusivité, totalité, partition, simultanéité et inclusion) ne semblent pas couvrir cette problématique, et il ne me parait donc pas possible d'exprimer formellement la contrainte souhaitée.
    • Pour ces cas, Looping propose l'outil "Règle" permettant d'exprimer une contrainte libre au niveau du MCD (par une description textuelle), mais également au niveau DDL en écrivant la requête SQL (par exemple avec un ALTER TABLE) qui adaptera en conséquence le schéma relationnel de la base : seul le MLD continuera à montrer les 2 clés, sachant que le code généré permettra d'en supprimer une.


    Est-ce que cela peut répondre à votre besoin ?
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  12. #12
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    avril 2002
    Messages
    5 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : avril 2002
    Messages : 5 968
    Points : 23 562
    Points
    23 562
    Par défaut
    Merci Paprick pour cette réponse, à une heure aussi avancée de la nuit !

    Effectivement, dans mon modèle actuel, rien n'empêche d'attacher un arbre numérique d'un point à un arbre réel d'un autre point... Il faut donc que modélise cette contrainte particulière.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/02/2013, 12h57
  2. [MySQL] Sélectionnez une valeur présente X fois dans une table
    Par fkoncept dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/01/2013, 13h03
  3. comment extraire les enregistrement doublés dans une table
    Par z_ahlam dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 17/09/2009, 11h20
  4. Lignes doubles dans une table
    Par youhibadelphi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/07/2009, 17h10
  5. Insertion d'un double dans une table
    Par steph_p dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 29/07/2008, 15h59

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