1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    janvier 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2014
    Messages : 77
    Points : 23
    Points
    23

    Par défaut Mon MCD est-il corrects ?

    Salut tout le monde;

    Je travaille sur un MCD qui représente la "Gestion de projet", j'ai construit mes entités et mes relations, et je veux votre avis concernant les relation que je pense que ne sont pas tous correctes, et surtout entre les trois tables: PROJET-AVENANT-SITUATION puisque ces relations formes un cercle fermé.

    Mon MCD:
    Nom : MCD-Model.jpg
Affichages : 82
Taille : 314,5 Ko


    Autres conseils sont les bienvenus
    Merci d'avance...

  2. #2
    Expert confirmé
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    2 550
    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 : 2 550
    Points : 5 693
    Points
    5 693

    Par défaut

    Bonjour,

    Le problème principal est que vous mélangez modèle conceptuel (MCD) et modèle logique (MLD)

    Si vous souhaitez présenter le modèle conceptuel, alors il faut :
    • parler d'entités-type et de relations ou associations, il n'y a pas de table dans un MCD
    • symboliser les entités-type sous forme de rectangles, et les relations sous forme d'ovales
    • utiliser des verbes pour nommer vos relations, par exemple : MATERIEL x,y --- Utiliser --- x,y PROJET ou PERSONNEL x,y --- Affecter --- x,y PROJET
    • ne jamais avoir de lien entre 2 entités-type sans passer par une relation : par exemple votre lien entre AVENANT et SITUATION est erroné
    • ne jamais positionner d'attribut de type identifiant dans une relation
    • mettre les cardinalités une seule fois entre une entité et une relation sous la forme : ENTITE1 min, max --- Relation1 --- min,max ENTITE2


    Si vous préférez présenter le modèle logique, alors il faut :
    • symboliser uniquement des rectangles qui représentent des tables
    • positionner les identifiants primaires dans les tables issues des relations du MCD, ces id primaires sont la concaténation de tous les id primaires des entités-type auxquelles la relation était liée


    Et dans tous les cas, il est impératif de respecter les formes normales :
    • ne jamais définir d'attributs non atomique, par exemple Groupement(num_groupement, part_ma_societe, Le_groupement) ne doit pas être modélisé ainsi.
    • ne jamais mettre dans la même entité des attributs qui ne dépendent pas de l'identifiant, par exemple le chef de projet ne doit pas etre attribut du projet, car il ne dépend pas de l'id projet mais de l'id personne, il en va de même pour le téléphone et le personnel, une personne pouvant avoir zéro à n téléphones


    Et aussi, pour faciliter la compréhension, expliquez les termes, c'est quoi un ODS ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    janvier 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2014
    Messages : 77
    Points : 23
    Points
    23

    Par défaut

    Bonjour,
    Merci pour votre aide, aprés correction du MCD, ce dernier devient :
    Nom : MCD-Model2.jpg
Affichages : 62
Taille : 213,3 Ko

    • ne jamais définir d'attributs non atomique, par exemple Groupement(num_groupement, part_ma_societe, Le_groupement) ne doit pas être modélisé ainsi.
    Le champ Groupement est Booléen, je vais explique plus : Un projet peut être réaliser par une seule entreprise ou par plusieurs entreprises (groupement d'entreprise), si il Ya u un groupement, l'utilisateur de la base de données doit cocher le champ Groupement (case à cocher) et les champs (num_groupement, part_ma_societe, Le_groupement) vont apparaitre pour les saisir, sinon (le cas de non groupement) ils reste invisible



    Et aussi, pour faciliter la compréhension, expliquez les termes, c'est quoi un ODS ?
    Le terme ODS : Ordre de service, Pour un projet on a un seul ODS de démarrage et peut être plusieurs ODS d'arrêt et de reprise.
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    2 550
    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 : 2 550
    Points : 5 693
    Points
    5 693

    Par défaut

    C'est un peu mieux , mais il y a encore des corrections à faire

    Citation Envoyé par samidz2014 Voir le message
    Le champ Groupement est Booléen, je vais explique plus : Un projet peut être réaliser par une seule entreprise ou par plusieurs entreprises (groupement d'entreprise), si il Ya u un groupement, l'utilisateur de la base de données doit cocher le champ Groupement (case à cocher) et les champs (num_groupement, part_ma_societe, Le_groupement) vont apparaitre pour les saisir, sinon (le cas de non groupement) ils reste invisible
    En ce cas, le booléen doit être supprimé, vous devez créer une nouvelle entité-type, et créer une relation comme suit : PROJET 0,1 --- Realiser --- 0,n GROUPEMENT

    Citation Envoyé par samidz2014 Voir le message
    Le terme ODS : Ordre de service, Pour un projet on a un seul ODS de démarrage et peut être plusieurs ODS d'arrêt et de reprise.
    Il est utile de prévoir un glossaire, annexé au MCD, et à faire valider en même temps que ce MCD par les hommes du métier, pour ce genre de définitions

    Il faut supprimer toutes les FK de vos entité-types, une FK n'a pas de sens au niveau conceptuel, par exemple id_projet n'a rien à faire dans l'ET "AVENANT".
    Lorsque vous générerez le MLD, les FK se créeront toutes seules en fonction des cardinalités.

    Pour l'ET "PERSONNEL", il faut sortir les attributs qui ne sont pas directement identifiés par 'id_personne' comme le téléphone et la fonction

    Pour téléphone, il faut modéliser PERSONNE 0,n --- posseder --- 1,1 TELEPHONE 0,1 --- Typer --- 0,n TYPE_TEL
    Dans TYPE_TEL vous identifiez les types de téléphone (portable perso, portable pro, portable d'astreinte, fixe domicile, fixe bureau, etc...)
    Dans la relation posseder vous pouvez ajouter un attribut définissant la priorité de choix pour l'appel

    Pour la fonction, il faut modéliser une relation à 3 pattes, car la fonction s'exerce à date
    PERSONNE 0,n --- Exercer --- 0,n FONCTION (id_fonction, code_fonction, libelle_fonction....)
    CALENDRIER 0,n ---┘

    Pour la relation PROJET avec MATERIEL, vous avez mis des cardinalité mini de 1 de chaque coté, ce qui signifie que
    - vous ne pouvez pas créer de projet sans lui affecter au moins un materiel
    - vous ne pouvez pas créer de materiel sans l'affecter à un projet
    Ce n'est pas très réaliste, remplacez les mini par zéro

    Il faut expliquer le trio PROJET/AVENANT/SITUATION. La relation circulaire établie entre les 3 ne me dit rien de bon

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    janvier 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2014
    Messages : 77
    Points : 23
    Points
    23

    Par défaut

    Bonjour,

    Pour téléphone, il faut modéliser PERSONNE 0,n --- posseder --- 1,1 TELEPHONE 0,1 --- Typer --- 0,n TYPE_TEL
    Dans TYPE_TEL vous identifiez les types de téléphone (portable perso, portable pro, portable d'astreinte, fixe domicile, fixe bureau, etc...)
    Dans la relation posseder vous pouvez ajouter un attribut définissant la priorité de choix pour l'appel

    Pour la fonction, il faut modéliser une relation à 3 pattes, car la fonction s'exerce à date
    PERSONNE 0,n --- Exercer --- 0,n FONCTION (id_fonction, code_fonction, libelle_fonction....)
    CALENDRIER 0,n ---┘
    Je suppose qu’une personne a un seul N° tél. au max, et je lui donne que le nom de la fonction.

    Il faut expliquer le trio PROJET/AVENANT/SITUATION. La relation circulaire établie entre les 3 ne me dit rien de bon
    Normalement c'est réglé

    Deuxième Correction du MCD:Nom : MCD-Model3.jpg
Affichages : 60
Taille : 346,5 Ko

    J'atend Votre Accord pour sauter vers le MLD.

  6. #6
    Expert confirmé
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    2 550
    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 : 2 550
    Points : 5 693
    Points
    5 693

    Par défaut

    Bonjour
    C'est mieux, notamment le trio projet/avenant/situation que vous avez corrigé

    J'ai encore quelques remarques :
    • Vous avez bien crée la nouvelle ET "GROUPEMENT" mais vous avez oublié de supprimer les attributs correspondants dans l'ET "PROJET"
    • Vous avez choisi de ne pas externaliser le téléphone, libre à vous, mais ce choix est très peu évolutif et il implique la présence de nulls. Je ne le vous recommande pas
    • Remarque similaire pour la fonction, il est toujours préférable d'avoir des entités-type dédiées pour tout ce qui concerne les typologies, stocker un libellé de fonction dans personne rendra plus de place que stocker une FK pointant une table des fonctions, et ça présente des risques d'incohérence (avec votre solution, vous risquez d'avoir une même fonction orthographiée différemment selon les personnes, sauf à poser une contrainte "check" sur le libellé, ce qui est un pis-aller)
    • Vous avez oublié de supprimer les FK id_projet et id_avenant dans l'ET "SITUATION"
    • Vous n'avez pas tenu compte de ma remarque concernant les cardinalités mini 1 entre "PROJET" et "MATERIEL" d'une part et "PERSONNEL" d'autre part


    Si vous utilisiez un logiciel de modélisation, certaines erreurs tomberont toutes seules, par exemple la présence à tort de FK est impossible si vous utilisez un logiciel.
    De plus, ce genre de logiciel vous facilitera la vie (maintenance aisée, gestion des versions) et vous pourrez générer automatiquement le MLD puis le MPD.
    que des avantages donc
    Il existe des logiciels gratuits : JMERISE, DBMAIN etc... faites des recherches sur le Web vous trouverez facilement

    EDIT :
    Je viens de voir que l'identifiant de l'ET "PERSONNEL" est erroné : il faut remplacer id_affectation_P par id_personnel par exemple
    Et aussi, j'ai un doute sur l'attribut "part_ma_société" dans l'ET groupement, que représente cet attribut ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    janvier 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2014
    Messages : 77
    Points : 23
    Points
    23

    Par défaut

    Salut,

    • Vous avez bien crée la nouvelle ET "GROUPEMENT" mais vous avez oublié de supprimer les attributs correspondants dans l'ET "PROJET"
    Attributs supprimés.

    • Vous avez choisi de ne pas externaliser le téléphone, libre à vous, mais ce choix est très peu évolutif et il implique la présence de nulls. Je ne le vous recommande pas.
    • Remarque similaire pour la fonction..............
    Je vais créer seulement une ET Fonction, mais pas ET Téléphone (Pour moi pas de grande importance).

    • Vous avez oublié de supprimer les FK id_projet et id_avenant dans l'ET "SITUATION"
    • Vous n'avez pas tenu compte de ma remarque concernant les cardinalités mini 1 entre "PROJET" et "MATERIEL" d'une part et "PERSONNEL" d'autre part
    C'est réglé.

    Il existe des logiciels gratuits : JMERISE, DBMAIN etc... faites des recherches sur le Web vous trouverez facilement
    Merci boucoup c'est vraiment intérésant.

    Je viens de voir que l'identifiant de l'ET "PERSONNEL" est erroné : il faut remplacer id_affectation_P par id_personnel par exemple
    C'est réglé.

    Et aussi, j'ai un doute sur l'attribut "part_ma_société" dans l'ET groupement, que représente cet attribut ?
    Explication :
    c'est un pourcentage du montant initial du marché (Voir ET Projet), si pas de groupement: la part est 100%, sinon un pourcentage déjà négocié.................Un conseil ?

    Correction du MCD :
    Nom : MCD-Model4.jpg
Affichages : 48
Taille : 371,5 Ko

Discussions similaires

  1. Mon script est-il correcte ?
    Par neufrdb dans le forum Débuter
    Réponses: 6
    Dernier message: 01/02/2011, 11h13
  2. Une partie de mon MCD est incorrecte
    Par beegees dans le forum Schéma
    Réponses: 3
    Dernier message: 15/01/2009, 21h42
  3. Réponses: 5
    Dernier message: 10/11/2007, 10h20
  4. Mon Singleton est-il correct ?
    Par olive_le_malin dans le forum C++
    Réponses: 11
    Dernier message: 15/12/2006, 15h06
  5. Mon formulaire est-il correct?
    Par biglittlekiss dans le forum Formulaires
    Réponses: 3
    Dernier message: 26/11/2006, 12h29

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