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

Modélisation Discussion :

Conception, validation des migrations des clés étrangères (UML => model relationnel)


Sujet :

Modélisation

  1. #1
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut Conception, validation des migrations des clés étrangères (UML => model relationnel)
    Bonjour,
    Les tables suivantes : Appareille, Type consommation, Consommation

    Conception des cardinalité en UML:
    Type_consommation --1------------1.*-- Appareille ---1.*------------1-- Consommation

    Conception des cardinalité à la MCD:
    Type_consommation --1.*------------1-- Appareille --1-------------1.*-- Consommation



    Ce qui devrait donnés :
    Type consommation (id_ Type consommation, libeller_ Type consommation),
    Appareille (id_ Appareille, id_ Type consommation, libeller _ Appareille),
    Consommation (id_ Consommation, id_Appareille, Quantité_consomation, prix, DateTime).

    Merci d'avance de me dire s'il y a des anomalie (ces en ouvrant de débat que la lumière jaillit)

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    pas tout à fait
    Quand en UML du a du 1--* (* ou qq chose > 1) tu as une foreign key du côté de la table qui stocke la classe côté *. Appareille dans ton cas doit donc avoir 2 clés, une vers Type_Consommation, une autre vers Consommation.

    NB : Tu ne veux pas plutôt dire Appareil ? (pas lle)

  3. #3
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Citation Envoyé par ego Voir le message
    pas tout à fait
    Quand en UML du a du 1--* (* ou qq chose > 1) tu as une foreign key du côté de la table qui stocke la classe côté *. Appareille dans ton cas doit donc avoir 2 clés, une vers Type_Consommation, une autre vers Consommation.
    Ce qui normalement de vrais donnés :

    Type consommation (id_ Type consommation, id_Appareill*, libeller_ Type consommation),
    Appareille (id_ Appareill, libeller _ Appareille),
    Consommation (id_ Consommation, id_Appareill*, Quantité_consomation, prix, DateTime).

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Non c'est Appareille qui doit avoir 2 clés étrangères pointant l'une vers Type_Consommation et l'autre vers Consommation

    Appareille
    + id_Appareille
    + fk_Type_Consommation
    + fk_Consommation

    A moins que ton modèle UML soit faux

  5. #5
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Citation Envoyé par ego Voir le message
    Non c'est Appareille qui doit avoir 2 clés étrangères pointant l'une vers Type_Consommation et l'autre vers Consommation

    Appareille
    + id_Appareille
    + fk_Type_Consommation
    + fk_Consommation

    A moins que ton modèle UML soit faux
    selon vous elle devrais être comment ma modélisation UML ? (pour que je puis me poser les bonne question)

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 945
    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 945
    Points : 30 716
    Points
    30 716
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    ego a raison de s’étonner et d’insister, en effet il y a une contradiction dans ce que vous présentez.


    Reprenons votre diagramme de classes :
    Type_consommation --1------------1.*-- Appareille ---1.*------------1-- Consommation
    Traduit en français (en remplaçant le mot « Appareille » par le mot « Appareil » qui est un nom de chose, alors que le premier représente le verbe « Appareiller »), on peut supposer que les règles de gestion des données sont à peu de choses près les suivantes :
    (R11) Un appareil fait référence à exactement un type de consommation,
    (R12) Un type de consommation est référencé par au moins un appareil,
    (R13) Un appareil fait référence à exactement une consommation,
    (R14) Une consommation est référencée par au moins un appareil.
    Par ailleurs, vous écrivez (cf. votre 1er message) :
    Type consommation (id_Type consommation, libeller_Type consommation)
    Appareille (id_ Appareille, id_Type consommation, libeller_ Appareille)
    Consommation (id_Consommation, id_Appareille, Quantité_consomation, prix, DateTime)
    Traduit en français, en faisant l’hypothèse que les noms d’attributs colorés (en marron ou apparenté) jouent le rôle de clés primaires SQL et que les noms d’attributs mis en italiques jouent le rôle de clés étrangères :
    (R21) Un appareil fait référence à exactement un type de consommation,
    (R22) Un type de consommation est référencé par au moins un appareil,
    (R23) Un appareil est référencé par au moins une consommation,
    (R24) Une consommation fait référence à exactement un appareil.
    La règle R13 est en contradiction avec la règle R23 et la règle R14 est en contradiction avec la règle R24.

    =>

    Veuillez formuler en français (correct tant qu’à faire) les règles de gestion à appliquer.

    Cela dit, le diagramme de classes correspondant aux règles R21-R24 est le suivant :
    Type_consommation --1..1------------1..*-- Appareil ---1..1------------1..*-- Consommation
    Et, sémantiquement parlant, plutôt le suivant :
    Type_consommation --1------------1..*-- Appareil ◀▶ --1..1------------1..*-- Consommation
    (où ◀▶ symbolise la composition.)
    (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
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Merci "fsmrel" pour ta réponse très instructive.


    Pour cette conception :
    du diagramme de classes correspondant aux règles R21-R24 est le suivant :
    Type_consommation --1..1------------1..*-- Appareil ---1..1------------1..*-- Consommation
    Et, sémantiquement parlant, plutôt le suivant :
    Type_consommation --1------------1..*-- Appareil ◀▶ --1..1------------1..*-- Consommation
    (où ◀▶ symbolise la composition.)
    Ce qui fait que le passage des clés étrangére ce fait comme suite :
    Type consommation (id_Type consommation, id_ Appareil*, libeller_Type consommation)
    Appareille (id_ Appareil, id_Consommation*, libeller_ Appareille)
    Consommation (id_Consommation, Quantité_consomation, prix, DateTime)

    Ps : merci de m’avoir donnés une méthodologie pour sortir ces règles est avoir les cardinalités de notre conception.
    Sa chant aussi que, Quand en UML on a du 1--* (* ou qq chose > 1) on a une foreign key du côté de la table qui stocke la classe côté *.

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


    Citation Envoyé par geforce Voir le message
    Ce qui fait que le passage des clés étrangères se fait comme suit :
    Type consommation (id_Type consommation, id_ Appareil*, libeller_Type consommation)
    Appareille (id_ Appareil, id_Consommation*, libeller_ Appareille)
    Consommation (id_Consommation, Quantité_consomation, prix, DateTime)
    Pas vraiment :

    Un appareil faisant référence à un type d’appareil et une consommation faisant référence à un appareil, la représentation au niveau tabulaire est plutôt la suivante (clés étrangères en italiques) :
    Type_consommation (id_Type consommation, libelle_Type_consommation)
    Appareil (id_Appareil, id_Type consommation, libelle_Appareil)
    Consommation (id_Consommation, id_Appareil, Quantite_consommation, prix, DateTime_consommation)

    Dans le cas de la composition, la structure de la table Consommation est la suivante :
    Consommation (id_Appareil, id_Consommation, Quantite_consommation, prix, DateTime_consommation)

    Autrement dit, il vous faut faire comme Dagobert et remettre les choses à l'endroit...
    (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. Des tables sans clés étrangères ni clés primaires
    Par tomyy dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 04/09/2009, 03h50
  2. Réponses: 10
    Dernier message: 08/01/2008, 13h17
  3. Réponses: 19
    Dernier message: 20/12/2006, 11h15
  4. [MySQL] Utilisation des fonctions des récupérations des données
    Par Konrad Florczak dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/10/2006, 16h17
  5. Gestion des majuscules des miniscules des accent
    Par issam16 dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 15h21

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