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 :

Associations réflexives : problème avec le nom des rôles pour les CIF


Sujet :

Looping

  1. #1
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut Associations réflexives : problème avec le nom des rôles pour les CIF
    Bonjour,


    @Paprick,

    A propos du nom de rôles pour les CIF (associations réflexives)

    Je crée le MCD suivant :
    Nom : cif_rôles(mcd 1).png
Affichages : 436
Taille : 12,4 Ko

    Je souhaite fournir un nom de rôle, par exemple « Un salarié n’a qu’un responsable » pour la flèche allant de la CIF vers SALARIÉ (lien vers l’entité ciblée).

    Je clique sur la flèche, ce qui déclenche l’invitation suivante, « Lien contrainte d’intégrité fonctionnelle » :
    Nom : cif_rôles(invite).png
Affichages : 409
Taille : 6,1 Ko


    Dans la case Libellé je propose « Un salarié n’a qu’un responsable », mais Looping réagit ainsi :
    Nom : cif_rôles(rejet 1).png
Affichages : 538
Taille : 5,5 Ko

    Pourquoi cette contrainte ?

    Bref, perplexe, contraint et forcé, je me plie à cette exigence, et au hasard propose « Être responsable de ». Looping accepte :
    Nom : cif_rôles(mcd 2).png
Affichages : 379
Taille : 14,7 Ko

    Par la suite, je préfère supprimer ce rôle créé avec la fenêtre « Lien contrainte d’intégrité fonctionnelle ». Pour cela j’efface le texte « Être responsable de » que j’avais tapé dans la fenêtre « Lien contrainte d’intégrité fonctionnelle ». Looping refuse...
    Nom : cif_rôles(rejet 2).png
Affichages : 394
Taille : 7,5 Ko


    Question : comment arriver à effacer ce libellé de rôle ?


    Autre remarque : Je voudrais renommer le rôle « Avoir pour responsable », et bien qu’il n’intervienne pas dans le rôle de la CIF, Looping refuse !
    Nom : cif_rôles(rejet 1).png
Affichages : 538
Taille : 5,5 Ko

    Je reste perplexe...
    (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à pour ça.

  2. #2
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Bonjour François,

    Une CIF sur une association réflexive... je me suis déjà pas mal cassé les dents sur ça !

    Avant de creuser l'exemple que tu as proposé, juste une précision : la raison pour laquelle le libellé du lien doit reprendre le rôle d'une des pattes de l'association, c'est le fait que cette correspondance permet de préciser quelle clé étrangère venant de SALARIE sera écartée de la clé primaire de la table d'association ENCADRER.

    Regarde si cela te parait cohérent.

    De mon côté, je vais regarder pourquoi Looping te boque autant sur tes demandes de modification de libellé.
    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

  3. #3
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Salve !


    D’accord Patrick,

    Citation Envoyé par fsmrel Voir le message
    Dans la case Libellé je propose « Un salarié n’a qu’un responsable », mais Looping réagit ainsi :
    Nom : cif_rôles(rejet 1).png
Affichages : 393
Taille : 5,5 Ko
    Pourquoi cette contrainte ?
    Citation Envoyé par Paprick Voir le message
    la raison pour laquelle le libellé du lien doit reprendre le rôle d'une des pattes de l'association, c'est le fait que cette correspondance permet de préciser quelle clé étrangère venant de SALARIE sera écartée de la clé primaire de la t able d'association ENCADRER.
    Patrick, tu as raison. Il faut effectivement un moyen pour déterminer la composition de la clé primaire de la table SQL ENCADRER, et ta solution est pleine de bon sens et imparable.

    J’espère que tu arriveras à t’en sortir avec le renommage des noms des rôles, sinon les noms « Être responsable de » et « Avoir pour responsable » seront figés à vie...


    Petite remarque. Si sur la patte connectant la CIF et la cible je permute les noms des rôles, c’est-à-dire si j’y remplace « Être responsable de » par « Avoir pour responsable », du point de vue du MCD, tout se passe bien, mais côté SQL ça ne suit pas )
    (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à pour ça.

  4. #4
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Salut François,
    Citation Envoyé par fsmrel Voir le message
    Petite remarque. Si sur la patte connectant la CIF et la cible je permute les noms des rôles, c’est-à-dire si j’y remplace « Être responsable de » par « Avoir pour responsable », du point de vue du MCD, tout se passe bien, mais côté SQL ça ne suit pas )
    Aïe... chez moi ça suit...
    C'est peut-être parce que je suis en 3.1 ... Mais je ne me rappelle pas avoir touché à ça .

    Peux-tu m'envoyer le MCD que tu as fait, avec le code SQL correspondant (qui n'a pas suivi !) ?
    Merci !
    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

  5. #5
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Re,
    Citation Envoyé par fsmrel Voir le message
    J’espère que tu arriveras à t’en sortir avec le renommage des noms des rôles, sinon les noms « Être responsable de » et « Avoir pour responsable » seront figés à vie...
    En attendant que je trouve une solution plus souple, tu peux toujours supprimer le lien et le recréer avec le nouveau nom de rôle !
    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

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par Paprick Voir le message
    En attendant que je trouve une solution plus souple, tu peux toujours supprimer le lien et le recréer avec le nouveau nom de rôle !
    Certes ! Mais curieusement l’attribut participant à la clé primaire de la table ENCADRER est invariablement celui qui ne devrait pas y figurer, même si je pratique l’alternance...
    (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à 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
    8 002
    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 : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour Patrick,


    Reprenons la Fenêtre ayant pour nom : « Lien contrainte d’intégrité fonctionnelle ». En fait c’est le texte de la case à cocher (en grisé) « Lien vers l’entité ciblée par la contrainte » qu’il faut lire avec la plus grande attention.

    Mon interprétation littérale est en effet la suivante :

    (a) L’entité ciblée est évidemment SALARIÉ puisque c’est la seule qui soit impliquée dans la CIF.

    (b) Quant au lien, il y en a deux. Il faut bien sûr en choisir un, mais lequel ? Il s’agit de répartir les rôles, c’est-à-dire pouvoir définir entre « Être responsable de » et « Avoir pour responsable » quel est celui qui intervient en tant que déterminant, l’autre intervenant alors en tant que dépendant dans la DF du type DATE X rôle1 → rôle2. En l’occurrence, j’ai pensé qu’il fallait choisir le rôle dominant, c’est-à-dire celui qui participe au déterminant de la DF, à savoir le rôle « Avoir pour responsable ».

    Manifestement, face à une ambiguïté, mon choix fut intuitif et fatalement erroné . A mon sens il faudrait que le libellé de la case à cocher soit de toute façon plus explicite, en évitant par exemple l’emploi du mot "lien", au bénéfice de celui de "rôle" et qu’on sache en tout cas qu’il s’agit sans conteste de faire le choix du dépendant, rôle2 (« Être responsable de »). Ça devient du reste obligatoire quand la réflexive est ternaire et plus, mais, Sahib, je pense qu’on peut éviter d’aller plus avant, n’est-il pas ?

    En tout cas, Caramba! Encore raté de ma part comme disait le général Alcazar...
    (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à pour ça.

  8. #8
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Bonjour François,

    Effectivement, les libellés sont à revoir pour être moins ambigus.
    Et il y aussi cette histoire de modification des rôles un peu trop contraignantes.
    Mais je suis content que, sur le fond, tout soit cohérent avec une bonne génération du MLD et du schéma relationnel !
    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

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Ouf ! Tout va bien !

    Je marque "Résolu".
    (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à pour ça.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2011, 16h28
  2. Extraire les noms des fichiers pour les utiliser en variable
    Par Sylver--- dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/02/2011, 13h57
  3. [XPATH] problème avec le nom des noeud fils
    Par DrDam dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 04/04/2008, 10h02
  4. problème avec média player par défaut pour les vidéos ?
    Par tomguiss dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/10/2005, 14h08

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