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

Schéma Discussion :

Gestion de la livrée d'un véhicule [MCD]


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Gestion de la livrée d'un véhicule
    Bonjour,

    Je suis actuellement en train de travailler sur un projet personnel où une base MySQL est utilisée, je réfléchis depuis un moment sur comment la constituer correctement mais je bloque sur un détail.

    J'ai des véhicules stockés qui correspondent à un modèle de véhicules et j'aimerai stocker des nom de "livrées", par exemple : "rouge", "bleue", "Edition spéciale quelquechose".

    Ces livrées sont directement influencées par le modèle puisque chaque modèle dispose un panel de couleurs/éditions qui lui est propre et il est ainsi possible d'obtenir différents véhicules d'un même modèle mais avec des livrées différentes.

    Je me demande si cette façon de concevoir la relation entre un véhicule, son modèle et sa livrée (parmi les possibles livrées du modèle) est viable.

    Par avance, merci.

    Nom : vehicle_bd.png
Affichages : 777
Taille : 66,3 Ko

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


    Citation Envoyé par Galihom
    Je me demande si cette façon de concevoir la relation entre un véhicule, son modèle et sa livrée (parmi les possibles livrées du modèle) est viable.
    D’après ce que vous écrivez, un véhicule a une seule livrée. Par contre, selon votre MCD, un véhicule peut avoir plusieurs livrées. Quelle règle est la bonne ?
    (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.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Bonsoir fsmrel,

    Tout d'abord merci de votre réponse, j'ai effectivement commis une erreur dans mes cardinalités.

    En voici la correction :

    Nom : vehicle_bd2.png
Affichages : 612
Taille : 103,3 Ko

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

    D'accord pour le changement des cardinalités. Je reprendrai tout ça demain soir.

    En attendant, bonne nuit !
    (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.

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


    Je reprends donc, et fais observer que, dans votre MCD, l’association describe_vehicle est redondante. Supposons en effet qu’elle disparaisse : grâce à l’association have_livery, on détermine la livrée de chaque véhicule et, transitivement donc, grâce à l’association have_model_liveries, on en détermine le modèle. Ainsi, l’association describe_vehicle est inessentielle et doit disparaître.

    Dans ces conditions, pour cette partie, le MCD se réduit au le suivant :





    En passant, deux véhicules ne peuvent pas avoir la même immatriculation, en conséquence de quoi on définit un identifiant alternatif, symbolisé dans le MCD par le mickey <ai> :





    Pour arriver à mettre en œuvre cet identifiant alternatif, procédez comme dans le billet PowerAMC : définir un identifiant alternatif.


    Le MLD (MPD chez PowerAMC) qui en est dérivé est le suivant :





    Au stade SQL, pour connaître le modèle d’un véhicule donné, il faudra une jointure des 3 tables :

    
    SELECT ModeleNom
    FROM   VEHICULE AS x JOIN LIVREE AS y ON x.LivreeId = y.LivreeId 
                         JOIN MODELE AS z ON y.ModeleId = z.ModeleId
    WHERE  x.Immatriculation = '1234XYZ56' ;
    
    
    Bien entendu, avec la mise en oeuvre de l’association describe_vehicle l’attribut ModeleId ferait partie des attributs de la table VEHICULE, et cette requête SQL se simplifierait, en se réduisant à :

    
    SELECT ModeleNom
    FROM   VEHICULE AS x JOIN MODELE AS y ON x.ModeleId = y ModeleId
    WHERE  x.Immatriculation = '1234XYZ56' ;
    
    
    Il est certainement frustrant de ne pouvoir utiliser cette requête. Mais...


    Parlons de l’identification relative

    Nul ne pourrait vous en vouloir que l’attribut ModeleId fasse partie des attributs de la table VEHICULE.

    Si l’on part du principe que les livrées sont au modèle ce que des lignes de commande sont à une commande, c'est-à-dire que ces livrées constituent une propriété multivaluée du modèle, l’entité-type LIVREE est dite faible (weak entity-type) par rapport à MODELE : elle n’est pas autonome, la suppression d’un modèle entraîne celle de ses livrées. La relation entre MODELE et LIVREE correspond à la relation de composition que l’on trouve dans les diagrammes de classes UML.

    En tout état de cause, avec PowerAMC on signifie cette dépendance au moyen de l’identification relative. Techniquement :

    Dans le MCD, en cliquant sur la patte d’association connectant LIVREE et MODELE_LIVREE, on peut accéder aux propriétés de la patte :





    En cliquant sur « Propriétés », on accède à la fenêtre « Propriété du lien d’association », où il suffit de cocher la case « Identifiant » :





    Le MCD devient le suivant, dans lequel la cardinalité 1,1 portée par la patte en question est mise entre parenthèses, ce qui symbolise chez PowerAMC l’identification relative (autres AGL, autre symbolisme) :





    D’où le MLD :





    Et cette fois-ci, ModeleId fait bien partie légalement et en toute légitimité des attributs de la table VEHICULE. En effet, conséquence de l’identification relative, la paire {ModeleId, LivreeId} est clé primaire de la table LIVREE, donc clé étrangère dans la table VEHICULE. Par conséquent, la 2e requête SQL peut être utilisée.


    Si vous avez des questions, n’hésitez pas, notamment en ce qui concerne la mise en oeuvre concrète de l’identification relative avec MySQL.
    (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.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Bonjour fsmrel,

    Tout d'abord merci pour votre réponse plus que complète, votre analyse du problème me sort bien de la brume !

    Bien que l'ayant vu en cours, je n'ai pas pensé à l'utilisation de lien identifiant.
    Je vais dès ce soir essayer de corriger mon modèle dans PowerAMC en suivant vos indications et ajouterai à ce fil les éventuelles questions avant de la passer en résolu.

    Encore merci.

  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Galihom,

    On est donc en phase. Et n'oubliez pas de voter quand une réponse a pu vous aider à sortir de la brume...
    (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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Encore une fois merci, j'ai pu corriger cette partie de mon MCD et j'ai voté pour les réponses m'ayant guidé à travers le brouillard !

    Mes autres questions relevant plus de l'utilisation de l'autogénération avec PowerAMC, je passe ce fil en résolu et les poserai dans un nouveau !

  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    D'accord Galihom. Mais si vous avez des problèmes avec Power AMC, ne perdez pas trop de temps, dites-le, on pourra certainement vous aider.
    (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.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Je vous remercie de vous intéresser à mes déboires suivant celui-ci , j'ai posté mon soucis dans la catégorie PowerAMC (ICI).

  11. #11
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    C'est parti... Vous êtes aux prises avec les cardinalités maxi 1 de part et d'autre d'une association, mais ça devrait s'arranger, c'est un problème classique...
    (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. Gestion de location de véhicules
    Par gids01 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 03/03/2006, 14h46
  2. Question des gestions des genres pour livre, BD...
    Par Oberown dans le forum Schéma
    Réponses: 3
    Dernier message: 16/09/2004, 16h58

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