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 :

Projet DRH informatique


Sujet :

Schéma

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Projet DRH informatique
    Bonjour,
    Je suis en binôme pour un projet en informatique, nous avons réaliser le schéma E/A sur le logiciel Windesign aucun erreur n'est signalé, mais nous avons deux alertes.

    Voici le message de ma binome après lui avoir envoyé le schéma E/A fait sur papier qu'elle a transmis sur le logiciel.

    2 alertes : dans les relations EVALUER et POUVOIR ENGENDRER
    les rôles des pattes d’une relation réflexive doivent être précisé

    Je ne comprend pas car pour moi ce n’est pas des réflexives et en plus pour POUVOIR ENGENDRER j’ai nommé les rôles des pattes !!!!!!

    1 Information : l’entité CALENDRIER n’a pas de propriété

    Pouvez-vous nous éclairer ? Car si nous sommes bloqués nous ne pouvons avancer dans le projet et faire le schéma relationnel.
    Je vous met en pièce jointe le sujet et le schéma.

    Merci pour vos retoursNom : projet informatique.jpg
Affichages : 4644
Taille : 547,7 KoNom : Projet DRH.jpg
Affichages : 4969
Taille : 91,7 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
    Bonjour vero31700,


    1. Cas de l’association réflexive : votre AGL s’est fourvoyé, car il n’y a pas d’association réflexive dans votre MCD.

    2. l’entité CALENDRIER n’a pas de propriété : c’est juste un avertissement de la part de l’AGL, car en général une entité-type a un attribut en plus de l’identifiant, mais ça n'est pas une obligation, il n’y a donc pas de problème.


    En revanche :

    Un bureau peut se trouver dans plusieurs sites ? Votre univers serait donc quantique ?

    De même, une salle peut se trouver dans plusieurs sites ?

    Une salle serait utilisée ad vitam pour une formation donnée ? Ne serait-ce pas plutôt à une date donnée ?



    Il est écrit :

    « Lorsque la formation est passée, une personne (chef de service, chef de projet...) peut préciser à l’aide d’un compte-rendu écrit si la formation pour une certaine compétence a été bénéfique à l’employé qui l’a suivie. »

    Mais selon votre MCD, ce compte-rendu ne peut pas faire référence à un employé en particulier.


    J’ai d’autres remarques à faire, à plus tard donc.
    (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
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Bonjour toulousaine !

    1 Information : l’entité CALENDRIER n’a pas de propriété
    Je remarque que sur le schéma, cette entité-type est nommée CALENDIER. Il manque d'R, ce calendrier !

    2 alertes : dans les relations EVALUER et POUVOIR ENGENDRER
    les rôles des pattes d’une relation réflexive doivent être précisé
    Effectivement, il n'y a pas d'association réflexive dans votre schéma !

    Autres remarques...

    1) Pour la clarté et la propreté du schéma, ce serait pas mal de mettre l'association EVALUER tout en haut afin d'éviter les croisements de lignes.

    2) Prévoyez dès maintenant vos futures clés primaires entières et auto-incrémentées en munissant vos entités-types d'identifiants a-sémantiques au lieu d'utiliser des codes ou numéros qui peuvent être alpha-numériques.

    3) Comme vous utilisez la propriété ville dans plusieurs entité-types, externalisez ces villes dans une entité-type à part.
    Ça évitera les villes identiques écrites sous plusieurs orthographes et ça gagnera de la place ; ça fiabilisera les données.

    4) Doit-on comprendre BUREAU en tant que meuble ou que pièce ?
    Cela m'étonne qu'un bureau puisse se trouver sur plusieurs sites !

    5) Idem pour une salle qui ne se situe logiquement que sur un seul site !

    6) Toujours sur les salles, je subodore derrière la propriété TypEquipSalle une propriété multivaluée qui déroge ainsi à la première forme normale ou bien une répétition textuelle d'une propriété qui devrait être externalisé comme les villes.

    7) Que faites-vous de la salle, une fois qu'une formation y a eu lieu ? Vous la démolissez ?
    D'après votre schéma, une salle ne peut être utilisée qu'une seule fois !

    Voilà quelques réflexions que vous pouvez mettre à profit pour réviser votre schéma. Il y en aurait d'autres du même ordre à faire mais je vous laisse les chercher.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  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
    2e lot de remarques (redondant à l'occasion avec celles de l'ami CinePhil)


    Association EXIGER : doit être porteuse d’un attribut permettant de connaître, pour un type de poste, le niveau exigé par compétence.

    Association EVALUER : doit être porteuse d’un attribut permettant de connaître le niveau d’un employé par compétence. Y ajouter la date d'évaluation.


    Entité-type FORMATION :

    L’attribut CompétenceViseeFormation n’est pas a priori multivalué : établir une association VISER entre FORMATION et COMPETENCE :

    [FORMATION]----1,3--------(VISER)--------0,n---[COMPETENCE]


    Entité-type DEMANDE_FORMATION :

    Remplacer les attributs AccordDemande et RefusDemande par un attribut StatutDemande pouvant prendre les valeurs « statut en attente », « accordé », « refusé ».


    Je poursuis la relecture.
    (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
    Reprenons l’énoncé qui vous est proposé :

    « Lorsque la formation est passée, une personne (chef de service, chef de projet...) peut préciser à l’aide d’un compte-rendu écrit si la formation pour une certaine compétence a été bénéfique à l’employé qui l’a suivie. »

    (1) On peut savoir si une formation est passée, en se référençant à aujourd’hui. Mais comment sait-on qu’un employé a effectivement suivi cette formation ? Votre MCD est muet à ce sujet. Pour pallier, comptez-vous sur l’existence du compte-rendu rédigé par qui de droit ? (en passant, datez le compte-rendu, ça peut servir).


    (2) Selon l’énoncé, un compte-rendu K concerne l’employé E qui a suivi une certaine formation F pour acquérir une compétence C.
    En l'occurrence, K, E, F et C sont tous en en relation. En outre, le compte-rendu K n’est pas anonyme, une autre personne P l’a rédigé, et finalement K, E, F, C et P font l’objet du prédicat :

    Le compte-rendu K, rédigé par la personne P, rend compte textuellement du bénéfice qu’a retiré l’employé E en suivant la formation F pour acquérir la compétence C.

    Un compte-rendu détermine un employé (participant à la formation), ainsi qu’un second employé (rédacteur), une formation et une compétence : il s’ensuit que les comptes-rendus ne font pas nécessairement l’objet d’une entité-type, mais donnent plutôt lieu à une association porteuse du texte du compte-rendu (et de la date de celui-ci, tant qu’à faire).

    Cette fois-ci, l’entité-type EMPLOYE participant deux fois à l’association COMPTE_RENDU, il faut préciser les rôles : rédacteur et participant (à la formation) :





    Il faudra définir une contrainte d’exclusion entre ces rôles pour signifier qu’un participant ne peut pas rédiger lui-même le compte-rendu qui le concerne. Comme je ne dispose pas de WinDesign, je ne sais pas si celui-ci permet de gérer les contraintes d’exclusion entre les rôles Redacteur et Participant, quant à ma représentation, elle n’est pas formelle, ça n’est qu’un mickey : de toute façon, c’est au niveau SQL que la contrainte devra être mise en oeuvre. Il faudra aussi une contrainte d’inclusion entre les associations COMPTE_RENDU et VISER, car la compétence acquise au cours d’une formation doit faire partie des compétences visées par une formation.



    Concernant la cardinalité 1,3, c’est aussi au niveau SQL que celle-ci sera à mettre en œuvre.



    Cas de l’association POUVOIR_ENGENDRER

    L’association POUVOIR_ENGENDRER n’est pas pertinente.

    a) Vous avez représenté une ternaire et chaque patte est porteuse d’une cardinalité maximale N, ce qui revient à dire que la demande M faite par l’employé E pour la formation F peut être refusée N fois, alors qu’une fois suffit : la date de refus doit plutôt faire l’objet d’un attribut porté par l’association, laquelle devient binaire.

    b) Une demande donnée ne concerne pas N formations simultanément, donc si l’employé veut suivre plusieurs formations, il fera autant de demandes que nécessaire : la patte connectant DEMANDE_FORMATION et POUVOIR_ENGENDRER devrait être porteuse non pas d’une cardinalité 0,N mais 1,1.

    c) Si une demande ne concerne qu’une formation, il est aussi précisé dans l’énoncé que pour chaque demande refusée, on conserve la raison et la date du refus : raison et date vont de pair, la date du refus réintègre donc l’entité-type DEMANDE_FORMATION :




    Si l’on veut éviter les marques NULL au niveau SQL, on peut déjà mettre en œuvre ici une entité-type faible REFUS :




    Etant entendu qu’au niveau du MLD, la situation devra être la suivante :



    Avec une contrainte obligeant l’attribut StatutDemande à prendre la valeur « refus » si, pour une demande donnée, une ligne est effectivement présente dans la table REFUS (tout comme, pour une demande donnée, la présence d’une ligne dans la table REFUS exige que l’attribut StatutDemande correspondant prenne la valeur « refus »).

    Notez encore la clé candidate {CodeEmp, CodeFormation, DateDemande} , symbolisée par le mickey <ak> (abréviation de alternate key), faisant que, le même jour, un employé ne peut pas faire plus d’une demande pour une formation donnée. C’est assez symbolique, en effet il peut rebeloter le lendemain, mais bon...

    Il y a d’autres contraintes à faire figurer, ou tout du moins qui devront être prises en compte au niveau SQL : par exemple, un employé ne peut noter une formation que s’il l’a effectivement suivie, même chose pour les comptes-rendus : il serait faux de faire un compte-rendu d’évaluation pour une formation à laquelle l’employé n’a pas encore participé.


    A signaler encore qu’une salle ne peut pas être utilisée pour deux formations en même temps, et il est vraisemblable qu’à un moment donné une formation n’utilise qu’une salle. Je vous laisse le soin de représenter les CIF (contraintes d’intégrité fonctionnelle) correspondantes (voyez ici des exemples de CIF).

    Il doit encore y avoir des choses que j’ai oublié de vous dire, mais il y a déjà de quoi faire de votre côté...


    Bon courage !
    (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
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    je tiens à vous remercier d'avoir étudier le schéma est effectivement il ya des éléments auxquels nous n'avons penser.
    Nous débutons et le sujet est très complexe.
    Nous allons refaire le schèma selon vos remarques et je le posterai de nouveau.

    Merci

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Nouveau schéma
    Bonjour,
    Ci joint le schéma modifié, nous avons tenu compte de vos remarques.

    Si vous avez des remarques n'hésitez pas.


    Merci pour votre aideNom : Projet DRH.jpg
Affichages : 3770
Taille : 90,4 Ko

  8. #8
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,

    Citation Envoyé par vero31700 Voir le message
    2 alertes : dans les relations EVALUER et POUVOIR ENGENDRER
    les rôles des pattes d’une relation réflexive doivent être précisé

    Je ne comprend pas car pour moi ce n’est pas des réflexives et en plus pour POUVOIR ENGENDRER j’ai nommé les rôles des pattes !!!!!!
    Si je me fie à mon instinct, l'alerte sur EVALUER est probablement due à la présence de 2 "pattes" reliant l'association EVALUER et l'entité COMPETENCE. Il suffit de vérifier.
    L'autre alerte a du disparaître avec l'association POUVOIR ENGENDRER mais le problème était probablement identique : 2 pattes reliant cette association avec l'entité CALENDRIER. On peut même apercevoir un "n" de la cardinalité "0,n" (ou 1,n) de la 2e patte sur le premier schéma.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  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
    Bonsoir vero31700,


    Citation Envoyé par vero31700 Voir le message
    Nous débutons et le sujet est très complexe.
    D’accord. Pour un début, on va dire que vous ne vous en sortez pas trop mal par rapport à la moyenne des débutants. Le sujet comporte quelques difficultés, mais en procédant avec rigueur et avec un peu d’aide, vous devriez pouvoir les dominer.

    Quand j’ai écrit :

    « Selon l’énoncé, un compte-rendu K concerne l’employé E qui a suivi une certaine formation F pour acquérir une compétence C.

    En l'occurrence, K, E, F et C sont tous en en relation. »

    Je pense qu’il n’y a là aucune difficulté d’interprétation.

    Quand j’ai poursuivi en écrivant :

    « En outre, le compte-rendu K n’est pas anonyme, une autre personne P l’a rédigé, et finalement K, E, F, C et P font l’objet du prédicat :

    Le compte-rendu K, rédigé par la personne P, rend compte textuellement du bénéfice qu’a retiré l’employé E en suivant la formation F pour acquérir la compétence C. »

    Je pense que ça reste compréhensible : il s’agissait de compléter la liste des éléments à prendre en compte dans la construction des relations parties prenantes dans un compte-rendu : non seulement il y a une formation reçue, une compétence acquise, et un employé ayant participé à cette formation, mais il y a aussi le rédacteur du compte-rendu.

    Ensuite, quand j’ai écrit :

    « Il s’ensuit que les comptes-rendus ne font pas nécessairement l’objet d’une entité-type, mais donnent plutôt lieu à une association porteuse du texte du compte-rendu (et de la date de celui-ci, tant qu’à faire). »

    Je reconnais qu’il peut y avoir là une petite difficulté d’ordre psychologique : si un compte-rendu est un document, rédigé puis imprimé, on le touche, on le sent, on le froisse de dépit... Aussi on est tenté de le modéliser au moyen d’une entité-type (symbolisée par un rectangle), mais après tout, pourquoi ne pas voir ce compte-rendu comme mettant en relation une compétence, une formation, un employé formé et un employé rédacteur (ce que l’on symbolise par une ellipse) ? Cette difficulté est propre à l’approche entité/association (ou entité/relation) dont Merise est un représentant en ce qui concerne la modélisation conceptuelle des données. Accessoirement, rien ne vous empêche de transformer l’association en entité-type, je le répète, la difficulté est d’abord d’ordre psychologique...

    Quoi qu’il en soit, dans votre MCD le rédacteur (à moins que ce ne soit le participant...) est passé à la trappe (ainsi que le texte du compte-rendu), on attend :



    Pour peut-être mieux comprendre la situation, raisonnez comme s’il y avait deux entités-types d’employés, une entité-type REDACTEUR et une entité-type PARTICIPANT.

    Concernant la contrainte d’exclusion entre les pattes Rédacteur et Participant, vous pourrez faire comme moi, c'est-à-dire surcharger le diagramme à l’aide de Paint (à moins qu’un spécialiste de WinDesign ne se manifeste et vous explique comment procéder avec l’AGL...)


    Deuxième difficulté :

    Contraindre les paires {formation, compétence} de l’association AVOIR_COMPTE_RENDU à être légales, c'est-à-dire à préexister dans l’association VISER (contrainte d’inclusion). Cette fois-ci, vous devez vous en sortir avec WinDesign, vous disposez d’un modèle dans la FAQ Merise, et les exemples ne doivent vraisemblablement pas manquer dans l’aide de l’AGL. A signaler que les pointillés permettent de mettre en évidence le pivot de la contrainte (je les ai ajoutés dans mon post précédent).


    Troisième difficulté :

    SI vous considérez qu’on ne s’intéresse pas aux réservations des salles pour les formations, vous laissez l’association UTILISER en l’état. Il est toutefois d’usage d’en tenir compte, avec des règles du genre :

    (R1) A une date donnée, une formation n’a lieu que dans une salle ;

    (R2) A une date donnée une salle donnée ne peut être utilisée que pour une seule formation.

    J’ai représenté ci-dessous la règle (R1) à l’aide d’une CIF (contrainte d’intégrité fonctionnelle).Outre ceux que je vous ai déjà donnés, là encore, la FAQ Merise fournit aussi un exemple. N’hésitez pas à vous lancer dans la modélisation de la règle (R2)...


    Quatrième difficulté :

    La cardinalité 1,1 portée par la patte connectant REFUS et REFUSER doit être accompagnée du symbole « (R) », significative de l’identification relative, voyez la FAQ Merise ici, ou encore ici ou .

    Du fait de l’identification relative, l’entité-type REFUS hérite de facto de l’identifiant de DEMANDE_DE_FORMATION : l’attribut RaisonRefusDDE n’est pas clé, il est banal, il ne contient que le texte explicatif du refus. Ainsi, dans l’exemple de la FAQ Merise, Si l’entité-type LIGNE_DE_COMMANDE est doté d’un identifiant n°ligne, celui-ci est relatif à l’identifiant de COMMANDE, c'est-à-dire que l’identifiant de LIGNE_DE_COMMANDE est en réalité composé de la paire {n°commande, n°ligne) : la commande 1 est composée des lignes 1, 2, ..., de même, la commande 2 est composée des lignes 1, 2, ..., la commande i est composée des lignes 1, 2, ... et les numéros de ligne 1, 2, ..., ne suffisent pas pour identifier les lignes à eux seuls.

    Dans le cas des refus, comme une demande ne peut faire l’objet que d’un seul refus, le numéro de la demande suffit pour identifier le refus (donc inutilité d’un numéro de refus relativement à une demande).

    Dans la foulée, comme je l’avais expliqué, dans l’entité-type DEMANDE_DE_FORMATION, les attributs AccordDemande et RefusDemande doivent être remplacés par un attribut StatutDemande (et l’attribut RaisonRefusDemande doit être supprimé, puisqu’il a été transféré dans l’entité-type REFUS).


    Quelques aménagements complémentaires :

    En principe, un employé travaille dans un seul bureau, mais c’est vous qui voyez...

    L’association EXIGER_UN_NIVEAU doit être porteuse d’un attribut Niveau.

    Association EVALUER : Renommer « Note de A à F » en Note ou NoteObtenue ou ce que vous voulez, en tout cas il est recommandé que les noms des entités-types, des associations, des attributs, etc. ne comportent pas d’espaces, sinon au stade SQL ça peut être la galère... Cela vaut aussi pour les dates.

    L’association AVOIR_COMPTE_RENDU doit être porteuse du texte du compte-rendu...


    Bon courage à vous. Si vous avez encore besoin d’explications, n’hésitez pas, avec CinePhil, JPhi33 et autres concepteurs, nous devrions pouvoir vous éclairer.

    Et n’oubliez pas de voter quand une réponse a pu vous apporter quelque chose...

    Pour résumer :



    Pas de panique ! On peut reprendre point par point et aménager le MCD au besoin...
    (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
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    nous allons faire les modifications qui sont inscrit en rouge, par contre vu que ma binome et moi débutons, nous connaissons très peu le logiciel windesign, comment ajouter dans ce cas le X et le I ? Quelles sont leurs significations ? Car il faudra que j'explique ces signes dans mon devoir.
    Malheureusement nous sommes en maque de temps, car nous devons avancer sur le dictionnaire des données que je posterai si possible demain soir afin d'avoir votre avis et analyse et sur le Schéma relationnel.
    Le travail est à rendre pour mardi 10, nous souhaitons le boucler pour dimanche.

  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
    Bonjour vero31700 et binôme,



    La lettre « X» symbolise l’exclusion et la lettre « I » symbolise l’inclusion. Ce que sont l’inclusion et l’exclusion, je pense en avoir suffisamment parlé.

    Exclusion : Je rappelle qu’il s’agit par exemple de signifier qu’il est exclu qu’un employé puisse se noter ou s’évaluer.

    Inclusion : un employé ne peut rendre compte de l’acquisition d’une compétence dans le cadre d’une formation qu’à la condition qu’il s’agisse d’une compétence visée par cette formation.

    Vous pourriez aussi tricher, en déguisant VISER et AVOIR_COMPTE_RENDU en entités-types et en les mettant en relation...

    Comme je l’ai déjà écrit, je n’ai pas WinDesign, je serai donc bien en peine de vous dire comment on procède techniquement pour implanter les contraintes avec cet AGL.

    Dans le doute et si vous manquez de temps, omettez les contraintes dans le MCD, on rattrapera le coup au stade du MLD (ou SQL).
    (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.

  12. #12
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    merci pour les explications
    comme je vous l'ai annoncé au début nous débutons et en cours nous n'avons pas vu les symbole X et I. Ma binôme hésite à les mettre et veut se baser que sur ce que l'on a appris.
    Comment illustrer sans le X que seul le chef de service rédige un compte rendu ? Que se passe t-il si on n ajoute pas le X et le I sur le schéma ?

    Pour le I je n'ai toujours pas compris son rôle. (je suis désolée, nous n'avons pas fait de TD avec les X, I)

    Ensuite pour Redacteur et participant, faut-il les mettre dans un cercle comme les associations ?

    Merci

  13. #13
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Je pense que nous allons omettre les contraintes et les rattraper au niveau SQL. Nous sommes en manque de temps et je travaille avec ma binome à distance (tél, mail). J'expliquerai les hypothèses, les contraintes à part.
    Demain je posterai mon dictionnaire des données, pouvez-vous le corriger ?
    Je vous remercie de votre aide

  14. #14
    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 vero31700 et binôme,


    Citation Envoyé par vero31700 Voir le message
    Je pense que nous allons omettre les contraintes et les rattraper au niveau SQL. Nous sommes en manque de temps et je travaille avec ma binôme à distance (tél, mail). J'expliquerai les hypothèses, les contraintes à part.
    D’accord.



    Citation Envoyé par vero31700 Voir le message
    Demain je posterai mon dictionnaire des données, pouvez-vous le corriger ?
    J’essaierai, mais je ne promets rien car je suis bien pris par ailleurs...



    Citation Envoyé par vero31700 Voir le message
    Je vous remercie de votre aide
    Alors votez !



    Citation Envoyé par vero31700 Voir le message
    Comment illustrer sans le X que seul le chef de service rédige un compte rendu ? Que se passe t-il si on n ajoute pas le X et le I sur le schéma ?
    Les CIF, les contraintes d’exclusion, inclusion, et autres, ont pour objet de participer au bétonnage de l’intégrité des données. Les représenter graphiquement permet non seulement d’attirer l’attention, mais, si l’AGL en est capable, lui demander en plus de générer automatiquement les contraintes (en général sous forme de triggers SQL), à notre place, et pour le compte du SGBD cible.

    Si les contraintes ne sont pas représentées, que l’AGL sache les traduire ou non en SQL, il faudra soi-même faire le travail (création des triggers pour faire court).



    Citation Envoyé par vero31700 Voir le message
    Pour le I je n'ai toujours pas compris son rôle. (je suis désolée, nous n'avons pas fait de TD avec les X, I)
    En l’absence de contrainte d’inclusion, la génération au niveau MLD (puis SQL) sera la suivante (j’ai renommé manuellement la table AVOIR_COMPTE_RENDU en COMPTE_RENDU) :




    La table COMPTE_RENDU peut sans problème avoir l’extension suivante :

     
    CodeParticipant    CodeEmpRedacteur    CodeFormation    CodeCompetence    CompteRenduTexte    CompteRenduDate
    ---------------    ----------------    -------------    --------------    ----------------    ---------------
    e1                  e2                 f17              c3                 t1                  d1
    .... 

    Et la table VISER avoir l’extension suivante , dont la formation f17 ne fait pas partie :

     
    CodeFormation    CodeCompetence    
    -------------    --------------
    f1               c11
    f1               c12
    f1               c13
    f2               c21
    ....
    
    Y aurait-y pas comme un problème de cohérence ? La table VISER ne serait-elle quand même la référence pour les comptes-rendus (qui ont étés remplacés par des contes-rendus...) ?

    Pour pallier, comme je le disais dans mon message précédent, vous pouvez déguiser l’association VISER en entité-type faible (que j’ai nommée FORMATION_COMPETENCE en remplacement de VISER), avec identification relative, comme dans l’exemple du DOSSIER de la FAQ Merise :





    Et l’AGL dérivera un MLD du genre :





    Du coup, le SGBD refusera que soit présente dans la table COMPTE_RENDU la paire <formation, compétence> = 'f17, c3', parce qu’elle est absente de la table FORMATION_COMPETENCE, intégrité oblige.



    Citation Envoyé par vero31700 Voir le message
    pour Redacteur et participant, faut-il les mettre dans un cercle comme les associations ?
    Non. En définissant les pattes de l’association AVOIR_COMPTE_RENDU, vous proposerez ces termes à WinDesign (que je n'ai pas, je le répète...), en tant que rôles portés par les pattes (WinDesign doit bien proposer quelque part une case "Rôle"...)
    (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.

  15. #15
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Schéma E/A, dictionnaire des données, Schéma Relationnel
    Bonjour,
    Nous avons fait une dernière version du schéma E/A, nous n'aurons pas le temps de le modifier (sauf des petits détails).
    J'ai avancé sur le dictionnaire des données, (comme on en a pas beaucoup vu et ceux qu'on a vu traitait sur des cas simples) j'ai du mal avec les types et les contraintes.
    Ma binome à avancer sur le schéma relationnel et à des doutes.

    Par contre dans l'énoncé il est indiqué que l'employé note la qualité de la formation sur chaque compétences qu'elle devait améliorer de 1 à 3, est-ce que cela est indiqué sur le schéma E/A ? Faut-il ajouter une patte liant les entités employé et compte rendu avec l'association note ?

    Je remercie aux personnes qui prennent le temps de nous aider, car nous ne sommes pas du tout forte dans ce domaine.
    Je joindrai le schéma EA tout à l'heure
    Fichiers attachés Fichiers attachés

  16. #16
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    une réponse s'il vous plaît ? sur le schéma relationnel et le dico des données...


    Par contre dans l'énoncé il est indiqué que l'employé note la qualité de la formation sur chaque compétences qu'elle devait améliorer de 1 à 3, est-ce que cela est indiqué sur le schéma E/A ? Faut-il ajouter une patte liant les entités employé et compte rendu avec l'association noter avec l'attribut NoteNom : Projet DRH.jpg
Affichages : 5240
Taille : 98,6 KoNom : Projet DRH.jpg
Affichages : 5240
Taille : 98,6 Ko ?

    merci

  17. #17
    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 vero31700 et binôme,


    Citation Envoyé par vero31700 Voir le message
    une réponse s'il vous plaît ?
    Curieusement, je n’ai reçu votre message du 06/03 qu’aujourd’hui...

    Quant à votre dernier MCD, il est arrivé après que j’ai eu rédigé ce qui suit : je laisse ma prose en l’état et vais ensuite regarder de plus près.

    __________________________


    Ma prose initiale :

    Vos règles de production du MLD à partir du MCD sont partiellement correctes.

    Dans votre document Word, vous écrivez :

    « Les entités deviennent des relations »

    En fait, un type d'entité (aka entité-type) authentique (plutôt qu’une entité qui est une instance d’un type : vous et moi sommes des entités et sommes des instances de l’entité-type PERSONNE) donne le plus souvent lieu à une variable relationnelle (une relation est une valeur prise à un moment donné par une variable relationnelle). Ainsi, chacune des entités-types TYPE_POSTE, EMPLOYE, BUREAU, SITE, SALLE, FORMATION, COMPETENCE, DEMANDE_FORMATION, REFUS donne lieu à une relvar (abréviation de variable relationnelle). Vous me direz « Et CALENDRIER ? » En fait, il s’agit là d’une pseudo entité-type, elle en a le goût, mais en Merise elle est présente pour pallier une faiblesse de cette méthode, quand il faut faire intervenir la date comme vous l’avez fait en temps que participant à l’identification d’une association (pr exemple UTILISER), mais avec un AGL comme DB-MAIN, en E/A la date est attribut de l’association en cause, pouvant participer en temps que tel à l’identifiant de l’association. Bref, suite à dérivation du MCD en MLD, la relvar CALENDRIER ne sert plus (elle serait même fort gênante), elle doit disparaître.

    Par ailleurs, la clé d’une relvar n’est pas forcément issue de l’identifiant d’une entité-type. Par exemple, l’entité-type REFUS donne lieu à une relvar, mais elle est identifiée relativement à DEMANDE_FORMATION (c’est une entité-type faible, elle n’est pas autonome, elle n’existe que si DEMANDE_FORMATION existe) : la clé de la relvar REFUS sera héritée de celle de la relvar DEMANDE_FORMATION, c'est-à-dire {NumDemande} :

    DEMANDEDE FORMATION (NumDemande, DateDemande, RaisonDemande, StatutDemande)

    =>

    REFUS {NumDemande, RaisonRefusDemande, DateRefusDemande}

    Vous écrivez encore :

    « Avec CIF on fusionne »

    Ici, vous confondez CIF et association 1,1 – x,N, mais bon (à la limite, précisez que votre CIF traduit une relation binaire de type surjection). E tout cas, le verbe « fusionner » est impropre. Prenons l’exemple :

    (OCCUPER) TYPEDEPOSTE fusionne dans EMPLOYE

    Ce verbe signifie en l’occurrence que les entités-types TYPE_POSTE et EMPLOYE ne feront plus qu’une au sein d’une relvar, ce qui ne fonctionne évidemment pas si elle ne sont pas en bijection...

    En réalité, il est plus sain d’écrie que la clé {CodeTypePoste} de la relvar TYPE_POSTE donne lieu à une clé étrangère {CodeTypePoste} dans l’en-tête de la relvar EMPLOYE, ce que vous avez du reste fait ici :

    EMPLOYE (CodeEmp, NomEmp, PrénomEmp, DiplomeEmp, DateNaisEmp, NumAdresEmp, RueAdresEmp, CPAdresEmp, VilleAdresEmp, CodeTypPoste# )


    N.B. Ne soulignez pas CodeTypPoste, le soulignement et réservé à la clé primaire : si vous soulignez CodeTypPoste, cela voudrait dire qu’un employé peut occuper plusieurs postes à la fois, ce qui est contradictoire avec ce que dit votre MCD.


    Concernant cette affirmation :

    (AFFECTER) BUREAU fusionne dans EMPLOYE

    Je ne sais pas si on rajoute seulement NumSalle#.
    Ou si on doit aussi mentionner CodeSite#.

    De deux choses l’une, soit un employé est localisé dans un seul bureau, soit il est localisable dans plus d’un bureau.

    (a) S’il est localisé dans un seul bureau, alors l’en-tête de la relvar EMPLOYE devient :

    EMPLOYE (CodeEmp, NomEmp, PrénomEmp, DiplomeEmp, DateNaisEmp, NumAdresEmp, RueAdresEmp, CPAdresEmp, VilleAdresEmp, CodeTypPoste#, NumBureau)

    (b) S’il est localisable dans plus d’un bureau, la relvar EMPLOYE n’a pas à être dotée d’un attribut NumBureau, c’est l’association AFFECTER qui fait l’objet de la relvar suivante :

    AFFECTER {CodeEmp, NumBureau)


    La patte connectant BUREAU et SE_TROUVER est porteuse d’une cardinalité 1,1 : la clé {CodeSite} de la table SITE donne lieu à une clé étrangère {CodeSite} pour la table BUREAU :

    BUREAU {NumBureau, CodeSite, ...}


    Vous écrivez :

    (FAIRE) EMPLOYE fusionne dans DEMANDEDE FORMATION
    Même problème

    La patte qui connecte l’entité-type DEMANDE_FORMATION et l’association FAIRE est porteuse d’une cardinalité 1,1 : la relvar DEMANDE_FORMATION est enrichie d’une clé étrangère {CodeEmp} et c’est tout.


    Vous écrivez :

    « 3ème règle : Les autres associations deviennent des relations. »

    En fait, précisez qu’il s’agit des associations de type plusieurs à plusieurs (x,N – y,N).

    En passant, la relvar EXIGER_NIVEAU hérite de l’attribut Niveau d l’association EXIGER_NIVEAU :

    EXIGER_NIVEAU {CodeTypPoste#, CodeCompétence#, Niveau}



    Citation Envoyé par vero31700 Voir le message
    dans l'énoncé il est indiqué que l'employé note la qualité de la formation sur chaque compétences qu'elle devait améliorer de 1 à 3, est-ce que cela est indiqué sur le schéma E/A ?
    En principe non, à moins que l’AGL propose une astuce. A défaut, vous décorez le MCD d’une remarque ad-hoc, manuellement. Quoi qu’il en soit, au niveau SQL, cette contrainte (appelons-la NOTER_FOURCHETTE) devra figurer :

    MCD

    [ EMPLOYE ]----0,N--------( NOTER (Note) )--------0,N----[ FORMATION ]

    =>

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE TABLE NOTER
    (
            CodeEmp          INTEGER    NOT NULL,
            CodeFormation    INTEGER    NOT NULL,
            Note             INTEGER    NOT NULL
        CONSTRAINT NOTER_PK (CodeEmp, CodeFormation),
        CONSTRAINT NOTER_EMPLOYE FOREIGN KEY (CodeEmp) REFERENCES EMPLOYE (CodeEmp),
        CONSTRAINT NOTER_FORMATION FOREIGN KEY (CodeFormation) REFERENCES FORMATION (CodeFormation),
        CONSTRAINT NOTER_FOURCHETTE CHECK (Note BETWEEN 1 AND 3)
    ) ;

    Attention, contrairement aux principaux SGBD, MySQL ne vérifie pas la contrainte NOTER_FOURCHETTE...

    Il est aussi précisé dans votre énoncé que l’évaluation d’une compétence est limitée aux lettre de A à H : prévoir une contrainte du même genre que celle que je vous ai fournie.

    J’attends la nouvelle version de votre dérivation du MCD en relvars.

    _____________________

    Fin de la prose initiale

    Je vais regarder votre dernier MCD...

    Et dire que je voulais faire une sieste
    (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.

  18. #18
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Merci pour les précisions sur le schéma relationnel, je passerai vos notes à ma binôme vu qu'elle s'y est mise dessus.
    Et pour le dictionnaire des données ?

  19. #19
    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 vero31700 et binôme,


    Finalement, un employé étant localisé dans un seul bureau, on retient donc :

    EMPLOYE (CodeEmp, NomEmp, PrénomEmp, DiplomeEmp, DateNaisEmp, NumAdresEmp, RueAdresEmp, CPAdresEmp, VilleAdresEmp, CodeTypPoste#, NumBureau)


    A propos des rédacteurs :

    La patte connectant EMPLOYE et AVOIR_COMPTE_RENDU est porteuse d’une cardinalité 1,N, ce qui signifie que chaque employé aura à rédiger au moins un compte-rendu concernant ses collègues : c’est trop demander (à moins qu'on ne soit au KGB )


    REFUS est une entité-type faible, il manque le symbole « R » de l’identification relative, à défaut la sémantique est en porte à faux :

    (a) Soit vous en faites usage :

    [DEMANDE_FORMATION]----0,1-------(REFUSER)--------1,1 (R)---- [REFUS]

    (b) Soit vous supprimez REFUS et réintégrez ses attributs RaisonRefusDde, DateRefusDde dans DEMANDE_FORMATION (au niveau relationnel pur, c'est-à-dire des relvars, ça n’est pas légal, mais dans l’urgence...)


    A propos de la relvar UTILISER :

    Selon votre MCD, la relvar dérivée est celle-ci :

    UTILISER {CodeFormation, DateUti, NumSalle}

    C'est-à-dire qu’au même moment, plusieurs formations peuvent avoir lieu dans la même salle et une formation peut se dérouler à la fois dans plusieurs salles.

    Pour empêcher cela, on a besoin de deux contraintes :

    (R1) A un moment donné, une salle est réservée pour une seule formation,

    (R2) A un moment donné, une formation a lieu dans une seule salle.

    Au minimum, il faut « désouligner » NumSalle (cas de R1) :

    UTILISER {CodeFormation, DateUti, NumSalle}

    On aimerait aussi représenter ceci (pour R2) :

    UTILISER {CodeFormation, DateUti, NumSalle}

    C'est-à-dire mettre en oeuvre deux clés candidates, {CodeFormation, DateUti} et { NumSalle, DateUti}.

    Sachant que votre mode de représentation ne permet pas de faire figurer simultanément ces deux clés, c’est au niveau SQL que l’on agit (clé primaire + contrainte UNIQUE) :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE UTILISER
    (
            CodeFormation       INTEGER     NOT NULL,
            DateUti             TIMESTAMP   NOT NULL,
            NumSalle            INTEGER     NOT NULL,
        CONSTRAINT UTILISER_PK PRIMARY KEY (CodeFormation, DateUti),
        CONSTRAINT UTILISER_AK UNIQUE (NumSalle, DateUti),
        CONTRAINT UTILISER_FORMATION FOREIGN KEY (CodeFormation) REFERENCES FORMATION (CodeFormation),
        CONTRAINT UTILISER_SALLE FOREIGN KEY (NumSalle) REFERENCES FORMATION (NumSalle)
    ) ;

    Bien entendu, à moins d’une gestion très sophistiquée des dates de réservation des salles, la relvar CALENDRIER n’a pas de raison d’être et disparaît au stade relationnel (ou SQL).
    (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.

  20. #20
    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 vero31700 et binôme,


    Citation Envoyé par vero31700 Voir le message
    Et pour le dictionnaire des données ?
    Ça confine au stakhanovisme...

    Vous ne votez toujours pas ?


    Le principe du dictionnaire de données est excellent en soi, mais il n’y a pas de norme E/A à ce sujet, donc mes remarques peuvent aller à l’encontre de ce qu’on vous enseigne et je fais référence à mes souvenirs des années soixante-dix, début des années quatre-vingts...

    En fouillant, je note qu’il n’est pas d’usage de nommer les types d’entités... Si vous le faites, alors nommez aussi les associations, tout en en faisant l’inventaire complet... Mais vous êtes en train de faire double emploi avec le MCD : sauf si votre prof vous l’impose, je vous suggère de laisser tomber les entités-types, à l’instar de J. P. Matheron qui donne l’exemple suivant dans Comprendre Merise :





    1re ligne de votre dictionnaire :

    Si donc vous tenez à faire figurer les entités-types, il faudrait remplacer « Les Entités » par « Entité-type » ou « Type d’entité » (au singulier, tant qu’à faire). Je rappelle qu’une entité est une valeur, une instance d’une entité-type.

    « Code »

    Il faudrait remplacer « code » par « propriété » (ou « attribut », ou « nom », dans le style de Matheron).


    « Contrainte »

    S’il s’agit d’une « contrainte » de longueur de chaîne de caractères ou de nombre de chiffres, utilisez une colonne « Longueur ». Réservez le terme « contrainte » pour les [plages de] valeurs particulières que peut prendre un attribut (exemple : "< 50" pour la capacité d’une salle).

    Si vous faites figurer les entités-types, mettre « EMPLOYES » au singulier. « COMPETENCES » : même principe.


    « Numéro d’adresse de l’employé » : si c’est le numéro dans la rue, le fait de contraindre l’attribut NumAdresEmp à ne prendre que des valeurs numériques est risqué (pour ma part j’habite au 103 ter...)

    Vous pouvez remplacer NumAdresEmp et RueAdresEmp par quelque chose de plus général, par exemple Ligne2Adresse (plus éventuellement Ligne3Adresse, il y a en effet des gens qui ont des adresses compliquées...)

    Note de l’évaluation : il faudrait une contrainte, comme quoi les valeurs vont de A à F. Par ailleurs, la longueur de la chaîne de caractères est égale à 1.


    « Statut de la demande » : ajouter "refusé" (revoyez ce que j’ai écrit ici) :

    ... Avec une contrainte obligeant l’attribut StatutDemande à prendre la valeur « refus » si, pour une demande donnée, une ligne est effectivement présente dans la table REFUS (tout comme, pour une demande donnée, la présence d’une ligne dans la table REFUS exige que l’attribut StatutDemande correspondant prenne la valeur « refus »).


    CALENDRIER : j’en ai déjà pas mal parlé, mais vous pourriez préciser les contraintes :

    FORMATION X DATE -> SALLE (à une date, une formation a lieu dans une seule salle),
    SALLE X DATE -> FORMATION (à une date, une salle n’est utilisée que pour une seule formation).

    Etc.

    Je vous quitte, car j’ai une urgence par ailleurs...

    Bon courage !
    (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. Projet librairie informatique- Procédures PL/SQL
    Par idris dans le forum PL/SQL
    Réponses: 2
    Dernier message: 01/06/2009, 17h43
  2. Réponses: 0
    Dernier message: 21/10/2008, 01h05
  3. bourse de projet master informatique
    Par kenza28684 dans le forum Etudes
    Réponses: 1
    Dernier message: 03/01/2008, 08h36
  4. Projet DUT informatique
    Par clem_69 dans le forum Windows
    Réponses: 2
    Dernier message: 26/12/2007, 12h08
  5. Projet IUT informatique: Demande avis sur clé USB...
    Par ChrisMan dans le forum Périphériques
    Réponses: 8
    Dernier message: 18/03/2006, 10h28

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