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 :

Besoin de conseil pour MCD et UML


Sujet :

Schéma

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Besoin de conseil pour MCD et UML
    bonjour tout le monde,

    Voila j'ai réalisé le MCD suivant :


    Je me pose plusieurs questions à son sujet :
    1) Pour l'héritage, j'hésite entre 'X' où 'XT', lequel dois-je mettre??
    2) Voyez-vous d'autre problème??

    Ensuite, je compte réaliser ce MCD en UML (manuellement c'est à dire pas en le générant!!) mais j'aurais besoin d'avoir plusieurs informations :
    1) J'ai regardé le tutoriel de 'developpez.com' (=> Comment transformer l'héritage, les sous-types du MCD dans le MLD ?)il parle des différentes manières de transformer un héritage, mais la première façon, il y a quelque truc que je comprend pas : que signifie "Elle est celle qui minimise la place"?? et "On peut "reconstituer" les héritages par des vues SQL"??
    2) Ensuite, entre les 4 manière laquel me conseillerez-vous??

    Merci d'avance!!

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Dans le MCD je lis :
    Un type d'article est défini par un et un seul attribut.
    Est-ce bien ce que vous vouliez modéliser ?

    Concernant l'héritage, la première solution : "Ne dupliquer dans les tables sous-type que l'identifiant" correspond à mon sens le mieux à ce qu'est un héritage.

    Si je veux récupérer tous les attributs du sur-type, il suffit de faire une jointure et les SGBD sont optimisés pour ça.

    Par contre, j'ai cru comprendre que le SGBD ne laisse pas toujours le choix ! J'ai cru comprendre que dans Postgres, c'est plutôt la méthode "Je duplique tout le sur-type" dans le sous-type qui est utilisé. Mais ne l'ayant jamais mis en œuvre moi-même, je n'en suis pas sûr.

    il y a quelque truc que je comprend pas : que signifie "Elle est celle qui minimise la place"??
    Il n'y a dans le sur-type, que ce qui concerne le sur-type et dans le sous-type que ce qui concerne le sous-type (+ l'identifiant bien sûr !).

    "On peut "reconstituer" les héritages par des vues SQL" ?
    On peut supposer qu'on aura besoin souvent des attributs du sur-type quand on utilisera le sous-type. Donc il peut être judicieux de créer des vues pour rassembler les données complètes de du sur et du sous-type.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à Cinephil
    Bonjour,

    désolé de répondre qu'aujourd'hui.

    Un type d'article est défini par un et un seul attribut.
    Est-ce bien ce que vous vouliez modéliser ?
    Que voulez-vous dire par votre question??

    Concernant l'héritage, la première solution : "Ne dupliquer dans les tables sous-type que l'identifiant" correspond à mon sens le mieux à ce qu'est un héritage.
    merci pour votre réponse.


    Je vais expliqué plus clairement(enfin essayer) ce que je cherche à faire : stocker le contenu des attributs(caractéristiques) selon le Type de l'article et l'article lui-même. Voici un exemple concret :
    EXEMPLE :
    - Article => Levis501
    - Type d'article => Jean
    - Attribut(caractéristique) => tissus
    ce que l'on veux c'est dire(par exemple) : le tissus d'un Levis 501 est du jean
    Donc on a besoin de l'attribut, de l'article et de la valeur de l'attribut.

    Je souhaiterais réaliser un modèle relationnel permettant de stocker le contenu des attributs selon le code de l'attribut, selon le code de l'article et selon le type (c'est à dire qu'il peut bien être de type Date, Décimal... tout dépend de l'attribut. Imaginons que l'attribut c'est le prix alors la valeur serait par exemple 20euros donc il est de type décimal)

    En espérant être assez clair, je souhaiterais savoir quels sont les méthodes que vous utiliseriez pour réaliser cela??

    Cordialement!

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par loic20h28
    Citation Envoyé par CinePhil
    Un type d'article est défini par un et un seul attribut.
    Est-ce bien ce que vous vouliez modéliser ?
    Que voulez-vous dire par votre question ?
    Votre MCD dit qu'un type n'est défini que par un seul attribut.
    Pour prendre votre exemple, le seul attribut du type 'Jean' est 'Tissu'. Un jean n'a donc pas de couleur, de taille, de braguette ou de boutons, décoré ou pas... ?
    Bref, les cardinalités de cette association devraient être à mon avis 0,n - 0,n. Cela engendrera la création d'une table de jointure entre les Types et les Attributs et un Type pourra avoir autant d'Attributs que nécessaire.

    ce que l'on veux c'est dire(par exemple) : le tissus d'un Levis 501 est du jean
    Ce n'est pas ce que donnera votre MCD !
    Selon votre exemple, on pourra dire :
    L'article Levis 501 est de type Jean et est défini par l'attribut Tissu.

    L'héritage n'est à utiliser que lorsque vous avez des attributs spécifiques à des sous-types. Je n'ai pas l'impression que ce soit le cas ici.
    J'ai plutôt l'impression que vos Attributs sont d'un certain type et ont une certaine valeur. On aboutirait alors à la table :
    Attributs(Code_Attribut, Libelle_Attribut, Type_Attribut, Valeur_Attribut)
    Le Type_Attribut peut être une clé étrangère vers une table de TypesAttributs.
    Le problème dans mon modèle de table est que la colonne Valeur_Attribut sera de type VARCHAR pour prendre en compte tous les types possibles. Il faudra alors transtyper pour effectuer éventuellement des calcul sur valeurs numériques ou dates. En ce sens, votre modèle par héritage peut se justifier aussi.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à CinePhil
    Bonjour, désolé de reparler maintenant mais ces derniers temps j'ai pas eu trop le temps de m'occuper de cela.
    Votre MCD dit qu'un type n'est défini que par un seul attribut.
    Pour prendre votre exemple, le seul attribut du type 'Jean' est 'Tissu'. Un jean n'a donc pas de couleur, de taille, de braguette ou de boutons, décoré ou pas... ?
    Effectivement je pense que tu as raison, donc si je comprend bien cela me donne la chose suivante


    Bref, les cardinalités de cette association devraient être à mon avis 0,n - 0,n. Cela engendrera la création d'une table de jointure entre les Types et les Attributs et un Type pourra avoir autant d'Attributs que nécessaire.
    J'ai réfléchi à cela es je souhaitais avoir votre avis sur le shéma suivant ??(plus particulièrement de mettre 0,n - 1,1 comme cardinalité entre les TypeArticles et les Attributs)


    En ce sens, votre modèle par héritage peut se justifier aussi.
    donc ce qui me donnerait la chose suivante?? :


    2 autres questions :
    * D'aprés toi lequel shéma es le plus approprié??
    *
    stocker le contenu des attributs(caractéristiques) selon le Type de l'article et l'article lui-même.
    yaurait-il d'autre moyen de faire cela??

    Merci d'avance!!

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Restons sur le cas général pour le moment :
    EXEMPLE :
    - Article => Levis501
    - Type d'article => Jean
    - Attribut(caractéristique) => tissus
    ce que l'on veux c'est dire(par exemple) : le tissus d'un Levis 501 est du jean
    Donc on a besoin de l'attribut, de l'article et de la valeur de l'attribut.
    Ceci donne le premier schéma :
    Article -1,1----Appartenir----0,n- TypeArticle -0,n----Caractériser----0,n- Attribut

    L'association 'Caractériser' donne une table de jointure qui contient la valeur de l'attribut.

    Le problème de ce schéma, comme je l'ai souligné plus haut, est que la valeur de l'attribut peut être numérique, booléenne, alphanumérique, date et qu'il faut donc prendre le type le plus large, VARCHAR, et qu'il faudra procéder à du transtypage pour les calculs.

    L'héritage des Attributs en types d'attributs permet d'avoir le bon type de colonne pour chaque attribut. Dans ce cas, il faut alors faire autant d'association qu'il y a de sous-type avec le typeArticle :
    TypeArticle -0,n----CaractériserTexte----0,n-AttributTexte --1,1----Etre----0,1- Attribut
    TypeArticle -0,n----CaractériserEnt----0,n-AttributEntier ----1,1-------|
    TypeArticle -0,n----CaractériserDec----0,n-AttributDecimal---1,1-------|
    TypeArticle -0,n----CaractériserDate----0,n-AttributDate-----1,1-------|

    stocker le contenu des attributs(caractéristiques) selon le Type de l'article et l'article lui-même.
    Pour les attributs qui sont spécifiques à un article, on peut aussi faire 4 associations vers les sous-types.

    Ce qui va être plus lourd avec ce schéma, c'est la récupération de toutes les valeurs de toutes les caractéristiques d'un type d'article et/ou d'un article puisqu'il faudra faire l'union de 4 requêtes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à CinePhil
    Ceci donne le premier schéma :
    Article -1,1----Appartenir----0,n- TypeArticle -0,n----Caractériser----0,n- Attribut
    L'association 'Caractériser' donne une table de jointure qui contient la valeur de l'attribut
    Mais je me demande vraiment si ce n'est pas possible d'avoir la chose suivante ??? :
    Article -1,1----Appartenir----0,n- TypeArticle -0,n----Caractériser----1,1- Attribut


    Le problème de ce schéma, comme je l'ai souligné plus haut, est que la valeur de l'attribut peut être numérique, booléenne, alphanumérique, date et qu'il faut donc prendre le type le plus large, VARCHAR, et qu'il faudra procéder à du transtypage pour les calculs.
    Pour cela je suis d'accord, je comprend tout à fais.


    L'héritage des Attributs en types d'attributs permet d'avoir le bon type de colonne pour chaque attribut. Dans ce cas, il faut alors faire autant d'association qu'il y a de sous-type avec le typeArticle :
    TypeArticle -0,n----CaractériserTexte----0,n-AttributTexte --1,1----Etre----0,1- Attribut
    TypeArticle -0,n----CaractériserEnt----0,n-AttributEntier ----1,1-------|
    TypeArticle -0,n----CaractériserDec----0,n-AttributDecimal---1,1-------|
    TypeArticle -0,n----CaractériserDate----0,n-AttributDate-----1,1-------|
    Je comprend pas trop ce que votre schéma va me donner??Pourai-tu me montrer cela avec un shcéma comme j'ai fais?? enfin si cela est possible!!


    Pour les attributs qui sont spécifiques à un article, on peut aussi faire 4 associations vers les sous-types.

    Ce qui va être plus lourd avec ce schéma, c'est la récupération de toutes les valeurs de toutes les caractéristiques d'un type d'article et/ou d'un article puisqu'il faudra faire l'union de 4 requêtes.
    Que veux tu dire par 4 associations vers les sous-types?? Quesque cela donnerait-il??

    Merci d'avance!!

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    L'héritage des Attributs en types d'attributs permet d'avoir le bon type de colonne pour chaque attribut. Dans ce cas, il faut alors faire autant d'association qu'il y a de sous-type avec le typeArticle :
    TypeArticle -0,n----CaractériserTexte----0,n-AttributTexte --1,1----Etre----0,1- Attribut
    TypeArticle -0,n----CaractériserEnt----0,n-AttributEntier ----1,1-------|
    TypeArticle -0,n----CaractériserDec----0,n-AttributDecimal---1,1-------|
    TypeArticle -0,n----CaractériserDate----0,n-AttributDate-----1,1-------|
    Après avoir lu et re-lu je pense avoir compris ce que tu voulais dire par là: en gros c'est d'avoir une table "TypeArticle" puis pour chaque type d'attribut (entier, décimal...) avoir une association "caractériser..." et une table "TypeAttribut" qui est relié à une classe attribut. est-ce bien cela??
    Si c'est bien cela, pourquoi et/ou que veux tu dire par "héritage des attributs en types d'attributs"?? Car pour moi un héritage c'est par exemple le schéma du premier topic.

    - Article => Levis501
    - Type d'article => Jean
    - Attribut(caractéristique) => tissus
    ce que l'on veux c'est dire(par exemple) : le tissus d'un Levis 501 est du jean
    Donc on a besoin de l'attribut, de l'article et de la valeur de l'attribut.
    Donc si je fias ce que tu ma dit, cette solution de stockage des attributs sera parfaite??

    Cordialement

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut besoin d'aide
    Voila, j'ai peut être trouvé une première solution mais faut que je l'affine.

    EXEMPLE :
    attribut -0,n----- Entier --------0,n- article
    attribut => Id, nom
    article => Numéro, Libellé, Prix
    Entier => Valeur
    Attribut souligné et en italique corresponde au clé primaire.

    Je sait plus trop comment se transforme une association porteuse en UML??
    Je sais qu'il existe en UML les classes d'associations, mais je me demande si je doit y insérer les clés primaires des deux autres entité(attribut et article) ou dans le schéma je ne les affiches pas mais dans la base ils y seront??

    Cordialement.

    EDIT :
    avec le schéma entre article et attribut, est-ce qu'il est possible d'avoir plusieurs foi le même attribut pour le même article mais avec des valeurs différentes??

    Merci d'avance

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

Discussions similaires

  1. Besoin de conseil pour MCD caisse
    Par vstangret dans le forum Merise
    Réponses: 2
    Dernier message: 14/05/2014, 16h14
  2. Besoin de conseils pour une application
    Par peredodu dans le forum Access
    Réponses: 9
    Dernier message: 05/03/2006, 11h18
  3. Réponses: 13
    Dernier message: 13/09/2005, 09h41
  4. Réponses: 4
    Dernier message: 20/05/2005, 13h30
  5. Réponses: 3
    Dernier message: 24/12/2004, 12h21

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