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

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    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 634
    Points : 33 599
    Points
    33 599
    Billets dans le blog
    13
    Par défaut Nouveau forum consacré au logiciel de modélisation Looping créé par le professeur Patrick Bergougnoux
    Chers membres du Club,

    Le professeur Patrick Bergougnoux, alias Paprick vient de sortir la version 3.0 de son logiciel de modélisation Looping.

    Comme Looping est de plus en plus utilisé et abordé dans le forum Schéma et dans les discussions parlant de modélisation des données, la rédaction de DVP a décidé de créer un sous-forum pour Looping dans la rubrique "ALM / Outils".

    Vous pourrez ainsi communiquer en direct avec son concepteur et avec les membres aguerris à l'utilisation de Looping. Vous pourrez aussi faire votre lettre au Père Noël en matière d'évolution de Looping.

    À bientôt sur nos forums
    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 !

  2. #2
    Responsable Arduino et Systèmes Embarqués

    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    janvier 2009
    Messages
    11 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2009
    Messages : 11 395
    Points : 49 435
    Points
    49 435
    Billets dans le blog
    18
    Par défaut
    Très bonne idée ce sous-forum, longue vie à Looping

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    7 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 7 079
    Points : 22 514
    Points
    22 514
    Billets dans le blog
    2
    Par défaut
    Re bonjour Paprick,

    Dans le sujet https://www.developpez.net/forums/d2.../#post11646567
    Je découvre les liens courbes, fort élégants du reste, qui relient les sous-types "salarié" et "bénéficiaire".
    C'est un plus d'une prochaine version ou bien déjà disponible avec la v3, auquel cas, mais komankonfédonctesque ? Point n'y parviens-je !


    EDIT trouvé : double clic sur le lien, puis cocher la case "lissage cassure"
    Trop bien

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

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

    Informations forums :
    Inscription : juin 2019
    Messages : 394
    Points : 1 586
    Points
    1 586
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    EDIT trouvé : double clic sur le lien, puis cocher la case "lissage cassure"
    Trop bien
    Et si tu jongles habillement avec les cassures, tu peux faire de très jolies choses !
    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
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 517
    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 517
    Points : 28 667
    Points
    28 667
    Billets dans le blog
    16
    Par défaut
    Bonsoir Patrick,


    A propos de l’ordre des attributs dans la clé primaire d’une table issue d’une association du MCD.  

    Examinons le MCD et le MLD figurant au chapitre 14 de ton ouvrage Modélisation Conceptuelle de Données - Une démarche pragmatique. J’ai pris cet exemple parce qu’il correspond (à une CIF près) à celui sur lequel nous nous sommes penchés, en compagnie du Capitaine :
    Nom : ordre des attributs dans la pk(ternaires).png
Affichages : 1679
Taille : 24,6 Ko


    La table EMPRUNT a pour clé primaire le triplet

    {NumCarte, CodeOuvrage, DatePret}

    Mais voilà, le DBA a besoin que l’ordre des attributs dans la clé soit différent, par exemple :

    {DatePret ,NumCarte ,CodeOuvrage}.

    Il ne semble pas que l’on puisse demander à Looping d’effectuer ce changement, donc il faudra retoucher manuellement le code SQL de création des tables (sans oublier de propager le changement sur les éventuelles clés étrangères ).

    Pour pouvoir agir sur cet ordre au stade MCD, je verrai par exemple quelque chose comme ceci, où la fenêtre associée à la patte connectant CALENDRIER et EMPRUNT permettrait de préciser la position de l’attribut dans l’identifiant de l’association (c’est-à-dire dans la clé primaire générée pour la table EMPRUNT) :

    Nom : ordre des attributs dans la pk(ternaires)1st.png
Affichages : 1668
Taille : 12,2 Ko


    Même principe pour les autres pattes branchées sur l’association EMPRUNT.

    Patrick, ton avis ?
    (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.

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

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

    Informations forums :
    Inscription : juin 2019
    Messages : 394
    Points : 1 586
    Points
    1 586
    Par défaut
    Bonsoir François,

    La solution que j'ai prévue dans la version 3.1 va tout à fait dans ce sens ; voici la fenêtre des liens qui sera proposée :
    Nom : Fenêtre Cardinalités v31.jpg
Affichages : 1078
Taille : 22,1 Ko
    Cela permettra même de choisir la position des identifiants relatifs .
    Et pour les clés alternatives composées, on pourra préciser la position entre parenthèses à la suite du nom de l'index.

    Qu'en penses-tu ?
    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

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    7 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 7 079
    Points : 22 514
    Points
    22 514
    Billets dans le blog
    2
    Par défaut
    Sujet important en effet
    En l'attente, j'ai remarqué que c'est l'ordre inverse de rattachement des "pattes" qui est appliqué pour l'ordonnancement des attributs dans la clef primaire de la table associative

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    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 634
    Points : 33 599
    Points
    33 599
    Billets dans le blog
    13
    Par défaut
    Citation Envoyé par Paprick Voir le message
    Bonsoir François,

    La solution que j'ai prévue dans la version 3.1 va tout à fait dans ce sens ; voici la fenêtre des liens qui sera proposée :
    Nom : Fenêtre Cardinalités v31.jpg
Affichages : 1078
Taille : 22,1 Ko
    Cela permettra même de choisir la position des identifiants relatifs .
    Et pour les clés alternatives composées, on pourra préciser la position entre parenthèses à la suite du nom de l'index.

    Qu'en penses-tu ?
    Que veut dire la case à cocher : "Clé étrangère dans index" ?
    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 !

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

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

    Informations forums :
    Inscription : juin 2019
    Messages : 394
    Points : 1 586
    Points
    1 586
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Que veut dire la case à cocher : "Clé étrangère dans index" ?
    La notion d'index est utilisée par Looping pour définir des clés alternatives composées : en indiquant un nom d'index dans la zone qui s'affiche quand on coche la case correspondante (case à cocher UNIQUE pour les rubriques et cette case "Clé étrangère dans index" pour les clés étrangères), toutes les rubriques ayant le même nom d'index composent une clé alternative (qui se traduit par un UNIQUE en SQL).
    Cette option est donc proposée dans les pattes des associations pour permettre d'intégrer les clés étrangères dans ces index.
    De plus, il est possible d'associer une rubrique à plusieurs index en séparant les noms d'index par un |
    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

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 517
    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 517
    Points : 28 667
    Points
    28 667
    Billets dans le blog
    16
    Par défaut
    Bonjour,
     

    @Paprick,

    Puisqu'on est dans la série « composition des identifiants ».

    Prenons par exemple le cas de l’entité-type FOURNISSEUR, au début du chapitre 12 de Modélisation Conceptuelle de Données - Une démarche pragmatique :

    Nom : fournisseur_original(loo).png
Affichages : 532
Taille : 4,2 Ko

    Pour les besoins de la cause, je définis maintenant des identifiants alternatifs.

    Ci-dessous, l’attribut Nom devient élément de l’identifiant alternatif {Nom, CodePostal}, symbolisé par l’index 1, et cet attribut devient aussi élément de l’identifiant alternatif {Nom, Ville}, symbolisé par l’index 2 (les noms des index sont séparés par le caractère « | ») :

    Nom : fournisseur_ai(nom).png
Affichages : 535
Taille : 22,0 Ko

    A son tour, l’attribut CodePostal est lui aussi élément de l’identifiant alternatif {Nom, CodePostal}, symbolisé par l’index 1 :

    Nom : fournisseur_ai(codePostal).png
Affichages : 535
Taille : 22,1 Ko


    L’attribut Ville est élément de l’identifiant alternatif {Nom, Ville}, symbolisé par l’index 2 :

    Nom : fournisseur_ai(ville).png
Affichages : 534
Taille : 20,2 Ko

    Code SQL résultant (MySQL) :

    CREATE TABLE FOURNISSEUR
    (
       IdFournisseur INT AUTO_INCREMENT,
       Nom VARCHAR(50) NOT NULL,
       Adresse VARCHAR(80) NOT NULL,
       CodePostal CHAR(5) NOT NULL,
       Ville VARCHAR(50) NOT NULL,
       IBAN CHAR(27) NOT NULL,
       CONSTRAINT FOURNISSEUR_PK PRIMARY KEY(IdFournisseur),
       CONSTRAINT FOURNISSEUR_1_AK UNIQUE(Nom, CodePostal),
       CONSTRAINT FOURNISSEUR_2_AK UNIQUE(Nom, Ville),
       CONSTRAINT FOURNISSEUR_AK UNIQUE(IBAN)
    ) ; 
    Va tutto bene !

    Mais voilà que pour le DBA (encore lui...) les attributs de la clé alternative FOURNISSEUR_1_AK sont à réordonner ainsi :

    CONSTRAINT FOURNISSEUR_1_AK UNIQUE(CodePostal, Nom)

    Peut-être me trompé-je, mais j’ai le sentiment que, pour le moment, je suis obligé de réordonner manuellement dans le code SQL (sauf à supprimer l’identifiant alternatif puis le recréer...).

    Question :

    Pour chaque index serait-il possible de choisir la position des attributs dans les identifiants alternatifs ? Par exemple, ci-dessous l’attribut Nom est en position 2 dans le cas de l’index 1 tandis qu’il est en position 1 dans le cas de l’index 2 :

    Nom : fournisseur_ai(nom)ordre des attributs.png
Affichages : 531
Taille : 22,0 Ko

    Pour mémoire, avec AMC pour chaque entité-type on dispose d’une fenêtre « Identifiants » fournissant la liste des identifiants de cette entité-type, et pour chacun de ces identifiants on peut afficher une fenêtre « Attributs » permettant d’y ajouter, supprimer des attributs, avec la possibilité de les réordonner (à la manière dont on réordonne les rubriques dans la fenêtre « Entité » avec Looping).

    Toujours avec AMC, en option on a la possibilité de voir à quels identifiants appartiennent les attributs :

    Nom : fournisseur_ai(amc).png
Affichages : 538
Taille : 5,2 Ko

    Si Looping proposait quelque chose d’analogue plutôt que les noms des attributs en gras comme ci-dessous, j’avoue que cela ne serait pas pour me déplaire...

    Nom : fournisseur_ai(loo).png
Affichages : 525
Taille : 5,7 Ko

    Patrick, qu’en penses-tu ? Peut-être suis-je à la bourre sur ce sujet ?
     
    (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.

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

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

    Informations forums :
    Inscription : juin 2019
    Messages : 394
    Points : 1 586
    Points
    1 586
    Par défaut
    Bonsoir,
    Citation Envoyé par fsmrel Voir le message
    Question : Pour chaque index serait-il possible de choisir la position des attributs dans les identifiants alternatifs ? Par exemple, ci-dessous l’attribut Nom est en position 2 dans le cas de l’index 1 tandis qu’il est en position 1 dans le cas de l’index 2
    Comme indiqué dans un post précédent concernant la future version 3.1, "pour les clés alternatives composées, on pourra préciser la position entre parenthèses à la suite du nom de l'index", ce qui nous donnerait par exemple Index1(2) | Index2(1) ...

    Toujours avec AMC, en option on a la possibilité de voir à quels identifiants appartiennent les attributs. Si Looping proposait quelque chose d’analogue plutôt que les noms des attributs en gras comme ci-dessous, j’avoue que cela ne serait pas pour me déplaire...
    La mise en gras indique la présence d'une rubrique dans une clause UNIQUE, et il faut effectivement cliquer sur la rubrique en question pour voir dans quel(s) index elle intervient. L'afficher directement dans le MCD ne me parait pas opportun dans la mesure où les noms d'index peuvent être longs, et leur nombre est illimité... Mais bon, on peut toujours réfléchir à la question...
    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
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 517
    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 517
    Points : 28 667
    Points
    28 667
    Billets dans le blog
    16
    Par défaut
    Bonsoir Patrick,


    Citation Envoyé par Paprick Voir le message
    Comme indiqué dans un post précédent concernant la future version 3.1, "pour les clés alternatives composées, on pourra préciser la position entre parenthèses à la suite du nom de l'index", ce qui nous donnerait par exemple Index1(2) | Index2(1) ...
    Parfait, Patrick, j’avais dû pas bien interpréter ton propos.


    Citation Envoyé par Paprick Voir le message
    Bonsoir,
    La mise en gras indique la présence d'une rubrique dans une clause UNIQUE, et il faut effectivement cliquer sur la rubrique en question pour voir dans quel(s) index elle intervient. L'afficher directement dans le MCD ne me parait pas opportun dans la mesure où les noms d'index peuvent être longs, et leur nombre est illimité... Mais bon, on peut toujours réfléchir à la question...
    Il ne s’agit surtout pas de faire figurer le nom des index, mais simplement des symboles brefs et suffisamment parlants, "ai1", "ai2", etc., à l’initiative de l’AGL, et je n’en demande pas plus. Je te dis pas le désastre si AMC (que j’ai connu dès sa création, par SDP à Suresnes (voir Xiao-Yun Wang sur Internet)) affichait plutôt le nom de mes contraintes ! 

    Toutes choses égales, cela vaut bien sûr pour le MLD. Avec AMC :
    Nom : fournisseur_ak(amc)mld.png
Affichages : 531
Taille : 5,1 Ko
    (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.

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

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

    Informations forums :
    Inscription : juin 2019
    Messages : 394
    Points : 1 586
    Points
    1 586
    Par défaut
    Bonsoir François,
    Citation Envoyé par fsmrel Voir le message
    Il ne s’agit surtout pas de faire figurer le nom des index, mais simplement des symboles brefs et suffisamment parlants, "ai1", "ai2", etc., à l’initiative de l’AGL
    Comme tu le sais, je ne souhaite pas alourdir la représentation des modèles simples, les multiples clés alternatives composées ne faisant pas partie de cette catégorie !
    Mais, toujours soucieux de répondre aux demandes les plus sophistiquées provenant d'experts dans ton genre , voici ce qui est envisageable avec la version 3.1 de Looping : proposer, en option, l'affichage des clés concernées par une rubrique en lieu et place des types de données. Je rajoute donc une option "Affichage types données" dans les propriétés avec les choix "Types SGBD" (par défaut) et "Clés concernées".
    On aurait alors la possibilité de remplacer, par exemple, NUMFAC CHAR(8) par NUMFAC PK,AK2 ou (seulement dans un MLD) REF INT par REF PK,AK1,FK

    Qu'en penses-tu ?
    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

  14. #14
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 517
    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 517
    Points : 28 667
    Points
    28 667
    Billets dans le blog
    16
    Par défaut
    Hello Patrick,


    Citation Envoyé par Paprick Voir le message
    Mais, toujours soucieux de répondre aux demandes les plus sophistiquées provenant d'experts dans ton genre
    Eh oui, des gens comme ça y en a, pour te forcer à réaliser des exploits (et encore tu connais pas Raoul, celui qui ventile façon puzzle quand ça va pas dans les modèles, il pourrait t’emmener mine de rien au message #1000 et à la V40, voire plus...)

    En tout cas, grand merci !


    Citation Envoyé par Paprick Voir le message
    Je rajoute donc une option "Affichage types données" dans les propriétés avec les choix "Types SGBD" (par défaut) et "Clés concernées".
    C’est bien dans la fenêtre Propriétés > MLD – SQL que figurerait l’option "Affichage types données", c’est ça ?

    De toutes façons, ce que tu proposes a l’air bien sympathique.

    Au fond, à moins que je ne raisonne comme un tambour, si je choisis "Clés concernées", outre la table FOURNISSEUR, l’entité-type FOURNISSEUR elle aussi ressemblerait assez à ce que j’ai fait avec AMC :

    Nom : fournisseur_ak(amc)mld.png
Affichages : 515
Taille : 5,1 Ko

    Ai-je compris de travers ?
    (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.

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

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

    Informations forums :
    Inscription : juin 2019
    Messages : 394
    Points : 1 586
    Points
    1 586
    Par défaut
    Hello,
    Citation Envoyé par fsmrel Voir le message
    C’est bien dans la fenêtre Propriétés > MLD – SQL que figurerait l’option "Affichage types données", c’est ça ?
    Presque ! Comme cet affichage se fera aussi dans le MCD, je vais placer le choix dans "Propriétés > Options générales" derrière 'Usage du gras".

    Au fond, à moins que je ne raisonne comme un tambour, si je choisis "Clés concernées", outre la table FOURNISSEUR, l’entité-type FOURNISSEUR elle aussi ressemblerait assez à ce que j’ai fait avec AMC
    Tout à fait !
    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

  16. #16
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 517
    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 517
    Points : 28 667
    Points
    28 667
    Billets dans le blog
    16
    Par défaut
    Ah ben dis donc, ah ben dis donc, ah ben dis donc... Well, well, well ! Trop bien  Et je pèse mes mots. Je vais dire à Raoul d’aller chercher une bouteille chez la Polonaise, mais allons-y mollo quand même... Nom : fetard75.png
Affichages : 1596
Taille : 2,7 Ko
    (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.

  17. #17
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 517
    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 517
    Points : 28 667
    Points
    28 667
    Billets dans le blog
    16
    Par défaut
    Salve, Patrick, c’est encore moi !


    Remarques relatives aux actions de compensation (ON DELETE / UPDATE)  

    Looping 3.0 permet la déclaration au stade MCD des actions de compensation ON DELETE / UPDATE : belle initiative ! Mais quelques remarques.

    Soit le diagramme suivant :

    Nom : delete cascade(mcd)motsCles_a.png
Affichages : 1592
Taille : 6,1 Ko

    A titre d’exemple, l’excellent ouvrage Modélisation Conceptuelle de Données - Une démarche pragmatique utilise les mots-clés "Merise", "MCD", "UML", "MLD", "champ", "CODASYL".

    Or pour cet ouvrage "champ" est à remplacer par "rubrique" et "CODASYL" est à supprimer : au stade SQL on interviendra directement sur la table UTILISER :

    DELETE FROM UTILISER
        WHERE LivreId = 
           (SELECT LivreId 
            FROM   LIVRE 
            WHERE  Titre = 'Modélisation Conceptuelle de Données - Une démarche pragmatique'
          AND MotCleId = 
           (SELECT MotCleId 
            FROM   MOT_CLE 
            WHERE  MotCleLibelle = 'CODASYL'))
    ;
    UPDATE UTILISER 
        SET MotCleId = 
            (SELECT MotCleId 
             FROM   MOT_CLE 
             WHERE  MotCleLibelle = 'rubrique')
        WHERE LivreId = 
            (SELECT LivreId 
             FROM   LIVRE 
             WHERE  Titre = 'Modélisation Conceptuelle de Données - Une démarche pragmatique'
          AND MotCleId = 
            (SELECT MotCleId 
             FROM   MOT_CLE 
             WHERE  MotCleLibelle = 'champ'))
    ;
    So far, so good. Supposons maintenant qu’on veuille supprimer l’ouvrage Vingt ans dans un mur, la vie d’une brique, lequel utilise aussi des mots-clés. Allons-y tranquillement :

    DELETE FROM LIVRE 
        WHERE Titre ='Vingt ans dans un mur, la vie d''une brique' 
    ;
    Las ! Le SGBD refusera la suppression parce que la table UTILISER contient des références à l’ouvrage en cause (table LIVRE).

    Pour arriver à nos fins :

    Soit on procède en deux temps, en commençant par supprimer ces références puis en supprimant enfin l’ouvrage ;

    Soit on définit une action de compensation ON DELETE CASCADE pour l’association UTILISER, auquel cas, sans se préoccuper des références dont il est l’objet, on peut tout de suite supprimer l’ouvrage, le déclenchement de la suppression de ses références sera automatiquement assuré par le SGBD.

    Nom : delete cascade(mcd)motsCles_b.png
Affichages : 1591
Taille : 15,5 Ko


    Mais ! Symétrie oblige, la suppression d’un mot-clé déclenche aussi la suppression automatique de ses références dans la table UTILISER. Si (par inadvertance...) je supprime le mot-clé "MCD", c’est quand même fâcheux pour les ouvrages traitant de la modélisation des données...

    Autrement dit, à mon sens, les actions de compensation ON DELETE / UPDATE devraient être présentées non pas dans la fenêtre « Association », mais à un niveau plus fin, c’est-à-dire au niveau des pattes d’association (ainsi je cocherai la case « ON DELETE CASCADE » pour la patte connectant LIVRE et UTILISER, et m’abstiendrai pour l’autre patte).

    Je passe au MCD de la page 254 de ton ouvrage. Si l’on peut envisager que la suppression d’un adhérent « cascade » automatiquement sur ses adhésions, il est difficilement concevable que la suppression d’une activité cascade elle aussi sur les adhésions (tête des adhérents !) Là encore, les pattes de l’association ADHESION devraient pouvoir être dotées d’actions de compensation différentes...

    Nom : delete cascade(mcd)adhesions.png
Affichages : 1607
Taille : 11,6 Ko

    La réflexion portait sur les associations.


    Sous-types et actions de compensation (disons ON DELETE)

    Manifestement, les actions de compensation sont ignorées dans le cas des sous-types. Il faut donc procéder en deux temps pour supprimer un personnel qui est un administratif (cf. page 221 de ton ouvrage), c’est bien dommage, alors que justement la suppression d’un personnel dans la table PERSONNEL ne peut que cascader (sinon il faudra qu’on m’explique) dans la table ADMINISTRATIF (ou ENSEIGNANT, toutes choses égales).
    (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.

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

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

    Informations forums :
    Inscription : juin 2019
    Messages : 394
    Points : 1 586
    Points
    1 586
    Par défaut
    Bonsoir François,
    Citation Envoyé par fsmrel Voir le message
    Autrement dit, à mon sens, les actions de compensation ON DELETE / UPDATE devraient être présentées non pas dans la fenêtre « Association », mais à un niveau plus fin, c’est-à-dire au niveau des pattes d’association (ainsi je cocherai la case « ON DELETE CASCADE » pour la patte connectant LIVRE et UTILISER, et m’abstiendrai pour l’autre patte).
    Tu as tout à fait raison, et j'avais bien conscience de cette limite quand j'ai implanté cette option.
    Je suis en train de réfléchir sur la meilleure manière, sans trop alourdir l'interface, de ramener cette CASCADE au niveau du lien (ce qui permettra par la même occasion de l'intégrer dans le cadre de l'héritage).
    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

  19. #19
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 517
    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 517
    Points : 28 667
    Points
    28 667
    Billets dans le blog
    16
    Par défaut
    Patrick,

    Je suis désolé pour cette surcharge de travail, mais je sais que tu ne rechignes jamais, donc que tu mettras tout en oeuvre pour faire avancer notre science, si humble soit-elle. Et comme disait mon voisin du dessus « Ad augusta per angusta » ! Et mon voisin d’en dessous « Haut les coeurs » ! Et celui d’à-côté « Plutôt que baisser les bras, levons le coude » !

    On y croit.
    (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.

  20. #20
    Nouveau membre du Club Avatar de Picsonald
    Homme Profil pro
    Développeur .NET
    Inscrit en
    décembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2011
    Messages : 23
    Points : 32
    Points
    32
    Par défaut
    Bonjour à tous,
    Merci pour l'ouverture de ce Merise sur Looping !
    Je l'utilise beaucoup dans les cours que je donne. Il est très pratique, et la v3.0 est tout simplement excellente !
    Longue vie au forum et à Looping !

Discussions similaires

  1. Demande de nouveau forum, de modération etc...
    Par Erwy dans le forum Evolutions du club
    Réponses: 2
    Dernier message: 18/01/2005, 15h14

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