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

Merise Discussion :

Aide conception MCD + 2FN


Sujet :

Merise

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide conception MCD + 2FN
    Bonjour,

    Je me présente kyrian étudiant en licence pro réseaux et telecoms.
    Je vous sollicite, pour résoudre un exercice merise, MCD

    Donc j'aurais besoin de vos lumières s'il vous plaît .

    Je vous donne le contexte :

    Individu :
    - nom et prenom de l'individu
    - date de naissance de l'individu
    - langues pratiquées par l'individu
    - niveau dans les langues pratiquées
    - désignation des centres d'interets
    - salaire actuel de l'individu
    - salaire recherché

    Diplome :
    - désignation du diplome (code et libelle)
    - date d'obtention

    Employeurs successif :
    - raison social de l'employeur
    - date d'entree dans l'entreprise
    - date de départ de l'entreprise
    - fonction exercé chez l'employeur
    - date de début de la fonction
    - date de fin de la fonction

    On précise également :
    - un individu peut éventuellement avoir été embauché plusieurs fois chez le meme employeur
    - un individu peut avoir exercé plusieurs fonctions chez le meme employeur ou la même fonction chez plusieurs employeurs

    Questions:
    1 - Etablir le modèle entité-association correspondant
    2- preciser les clés des entités et des associations
    3 - proposer un modele relationnel normalisé ainsi que le schéma relationnel associé.

    J'ai pu faire mon modèle entité association mais j'ai un doute sur la conception de celui-ci. Fsmrel ma un peu mis sur le chemin mais je bloque.

    imagik


    Pouvez- vous m'aider ??


    Merci beaucoup pour votre aide
    Cordialement

  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 002
    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 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour Kyrian,

    Si vous faites un vrai MCD, les informations ne doivent pas être répétées. Ainsi, l’attribut id_langue# (association PARLER) redonde avec l’attribut id_langue de l’entité-type INDIVIDU et doit donc disparaître : c’est à la génération du MLD qu’il renaîtra sous forme de clé étrangère, disons que vous avez anticipé. Même principe pour tous les attributs que vous avez suffixés par « # ».


    DIPLOME :

    La patte d’association connectant INDIVIDU et DETENIR est porteuse d’une cardinalité 0,N, donc un individu peut être détenteur de plusieurs diplômes. Mais comme le même diplôme peut concerner plusieurs individus, la patte d’association connectant DIPLOME et DETENIR doit être porteuse d’une cardinalité 0,N. La date du diplôme fera l’objet d’un attribut porté par l’association DETENIR.

    EMPLOYEUR :

    Là où ils sont placés, les attributs date_entree et date_depart signifient que l'employeur untel a été en activité de telle date à telle date... S’il s’agit des périodes d’embauche des individus chez les employeurs, alors ces dates doivent figurer dans l’association EMBAUCHER.

    FONCTION :

    Il faut revoir la modélisation des fonctions, car selon votre MCD on n’a aucune idée de l’employeur chez lequel un individu a exercée telle ou telle fonction.
    (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
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonjour Kyrian,

    Si vous faites un vrai MCD, les informations ne doivent pas être répétées. Ainsi, l’attribut id_langue# (association PARLER) redonde avec l’attribut id_langue de l’entité-type INDIVIDU et doit donc disparaître : c’est à la génération du MLD qu’il renaîtra sous forme de clé étrangère, disons que vous avez anticipé. Même principe pour tous les attributs que vous avez suffixés par « # ».


    DIPLOME :

    La patte d’association connectant INDIVIDU et DETENIR est porteuse d’une cardinalité 0,N, donc un individu peut être détenteur de plusieurs diplômes. Mais comme le même diplôme peut concerner plusieurs individus, la patte d’association connectant DIPLOME et DETENIR doit être porteuse d’une cardinalité 0,N. La date du diplôme fera l’objet d’un attribut porté par l’association DETENIR.

    EMPLOYEUR :

    Là où ils sont placés, les attributs date_entree et date_depart signifient que l'employeur untel a été en activité de telle date à telle date... S’il s’agit des périodes d’embauche des individus chez les employeurs, alors ces dates doivent figurer dans l’association EMBAUCHER.

    FONCTION :

    Il faut revoir la modélisation des fonctions, car selon votre MCD on n’a aucune idée de l’employeur chez lequel un individu a exercée telle ou telle fonction.
    Bonjour, Fsmrel

    J'ai refait mon mcd en prenant en compte tes conseils, j'ai aussi separé le mcd du mld afin de bien voir les clés etrangères

    Voici mon schéma :

    imagik

    Voici mon MLD :

    Diplôme (id_diplome, code,libelle)

    Detenir (date_obtention,id_diplome#,id_individu#)

    Individu(id_individu,nom,prenom,date_naissance,salaire_actuel, salaire_rechercher)

    Parler (id_individu#,id_langue#)

    Langues(id_langue,langues,niveau)

    Interets (id_interets, designation )

    Avoir (id_interets#, id_individu#)

    Embaucher (date_entree, date_depart, id_individu#,id_employeur#)

    Employeur (id_employeur,raison_social,nom,fonction,date_debut_fonction,date_fin_fonction)

    J'ai insérer les attributs des fonctions dans employeur ce qui me semble plus cohérent.

    Parcontre je n'arrive pas à comprendre comment faire pour passer de 1FN en 2FN puis en 3FN ???
    Dois je le faire sur tout mon schéma ou seulement ou c'est possible ???



    Merci beaucoup Fsmrel Cordialement

  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 002
    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 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour Kyrian,


    Voyons voir les entités-types, associations, tables...

    INDIVIDU

    Votre MCD et votre MLD sont conformes concernant les individus.

    DIPLOME

    Dans votre MCD, l’entité-type DIPLOME comporte encore un attribut id_individu qui n’a rien à y faire. Par contre ? au niveau du MLD, votre table DIPLOME est correcte :
    Citation Envoyé par Kyrian Voir le message
    Diplôme (id_diplome, code,libelle)

    DETENIR

    Votre MCD est correct, par contre votre MLD n’est pas valide car la table DETENIR n’a pas de clé :
    Citation Envoyé par Kyrian Voir le message
    Detenir (date_obtention,id_diplome#,id_individu#)
    La version correcte est la suivante :

    Detenir (date_obtention, id_diplome#, id_individu#)


    Je vous fournis la version MySQL Workbench correspondant à cette partie :




    LANGUE

    L’attribut Niveau n’est pas à sa place, car, il concerne aussi un individu.

    PARLER

    C’est au sein de la table PARLER que l’attribut Niveau prend son sens :


    INTERET

    Votre MCD et votre MLD sont conformes concernant les centres d’intérêt.

    AVOIR

    Votre MCD est correct, par contre votre MLD n’est pas valide car la table AVOIR n’a pas de clé :
    Citation Envoyé par Kyrian Voir le message
    Avoir (id_interets#, id_individu#)
    La version correcte est la suivante :

    Avoir id_interets#, id_individu#)


    EMPLOYEUR

    Y a du mou dans la corde à nœuds...

    En effet, selon les attributs composant l’en-tête de votre table EMPLOYEUR, un employeur a une raison sociale, un nom, c’est d’accord, mais il exerce aussi une fonction depuis telle date : encore des attributs qui ne sont pas à leur place.


    EMBAUCHER

    [indent]Selon votre représentation pour une paire {Individu, Employeur} il n’y a qu’en seule date d’embauche : l’association EMBAUCHER ne respecte donc pas la règle :
    Citation Envoyé par Kyrian Voir le message
    Un individu peut éventuellement avoir été embauché plusieurs fois chez le même employeur.
    Pour que cette règle soit respectée, dans le contexte de Merise, il faut définir une association ternaire :




    Mais comme les employeurs sont successifs, on peut énoncer la règle suivante :

    A une date donnée, un individu n'est employé que par un seul employeur.

    Ce qui en Merise conduit à définir une CIF (contrainte d’intégrité fonctionnelle), c'est-à-dire une contrainte d’unicité à cet effet :

    {INDIVIDU, DATE} -> {EMPLOYEUR}

    Symbolisée ci-dessous par la pointe de flèche rouge :




    Les choses sont plus simples à représenter au niveau du MLD. Version MySQL Workbench :




    Selon votre notation :

    Embaucher (id_individu# , date_embauche, id_employeur#, date_depart)


    FONCTION_EXERCEE

    Il reste donc à définir les fonctions exercées par un individu chez les employeurs. Là encore, on peut faire l’hypothèse qu’un individu n’exerce qu’une fonction à la fois (il ne serait pas difficile de modifier le modèle si cette règle ne valait pas).





    Selon votre notation :

    Fonction_exercee (id_individu#, date_debut_fonction, id_fonction#, date_embauche#, date_fin_fonction)


    La table FONCTION_EXERCEE est en relation avec la table EMBAUCHE, car un individu ne peut exercer de fonction chez un employeur que si celui-ci l’a embauché.

    Par ailleurs, on peut considérer qu’un individu a pu exercer une certaine fonction chez un certain employeur, le quitter, puis revenir pour exercer à nouveau cette même fonction chez cet employeur.


    Exemples :

    L’individu Bastien, embauché [chez l’employeur Volfoni] le 01/01/1954, a exercé la fonction de conseiller technique du 01/01/1954 au 31/12/1955 ;

    L’individu Bastien, embauché [chez l’employeur Volfoni] le 01/01/1954, a exercé la fonction de bras droit du 03/01/1954 au 31/12/1956 ;

    L’individu Bastien, embauché [chez l’employeur Naudin] le 11/01/1957, a exercé la fonction de consultant du 11/01/1957 au 14/07/1957 ;

    L’individu Bastien, embauché [chez l’employeur Naudin] le 11/01/1957, a exercé la fonction de conseiller commercial du 15/07/1957 au 23/09/1957 ;

    L’individu Bastien, embauché [chez l’employeur Volfoni] le 01/10/1957, a exercé la fonction de chef d’équipe du 07/10/1957 au 25/09/1958 ;

    L’individu Bastien, embauché [chez l’employeur Volfoni] le 01/01/1957, a exercé la fonction de conseiller technique du 26/09/1958 au 30/03/1959 ;

    Etc.


    L’expression entre crochets : [chez l’employeur Volfoni] est simplement là pour rappeler que par jointure des tables FONCTION_EXERCEE et EMBAUCHE, on sait qui est l’employeur de Bastien.


    Citation Envoyé par Kyrian Voir le message
    Par contre je n'arrive pas à comprendre comment faire pour passer de 1FN en 2FN puis en 3FN ?
    Dois-je le faire sur tout mon schéma ou seulement où c'est possible ?
    Il ne s’agit pas de passer en 1FN, 2FN, 3FN, en FNBC, etc., mais de vérifier que ces formes normales ne sont pas violées. La vérification doit être effectuée pour chaque table.


    Bon courage, et n'hésitez pas à voter pour les réponses qui ont pu 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.

Discussions similaires

  1. Aide conception diagramme de classes Projet Web
    Par alves.seb dans le forum Diagrammes de Classes
    Réponses: 9
    Dernier message: 12/06/2007, 14h29
  2. [CONCEPTION]MCD gestion d'équipements différents
    Par gargamelle dans le forum Modélisation
    Réponses: 2
    Dernier message: 15/05/2007, 14h10
  3. conception MCD questionnaires
    Par alliance dans le forum Administration
    Réponses: 1
    Dernier message: 01/08/2006, 16h02
  4. Aide pour MCD avec clés étrangères
    Par tiger33 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2006, 16h01
  5. [CONCEPTION MCD] Problème avec les clés composées
    Par fabriceMerc dans le forum Schéma
    Réponses: 3
    Dernier message: 14/02/2005, 09h43

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