32 0 1MB
ECOLE NATIONALE DES INGENIEURS DES TRAVAUX AGRICOLES DE BORDEAUX DEPARTEMENT ENTREPRISE ET SYSTEME UNITE DE FORMATION INFORMATIQUE ~o~O~o~
EXERCICES D’ELABORATION DE MODELES CONCEPTUELS DES DONNEES CORRIGES Juin 2003
Monique BORIES et Jérôme STEFFE
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 1
EXERCICE 1 GESTION DES DOSSIERS COMPTABLES D’UN CENTRE DE GESTION Choix de gestion : - On considère que la commune et la ville sont des homonymes - Le nom du directeur de l’agence n’est donné qu’à titre indicatif et aucun renseignement complémentaire sur le directeur n’est nécessaire - On ne gère pas l’historique de la SAU sur l’exploitation - On ne gère que le commune du siège social de l’exploitation Liste des informations retenues dans le modèle : Nom
Commentaire
ID comptable Nom comptable
Entité
Type
Comptable Comptable
A5 A30
Date naissance
Comptable
D
No tél
Comptable
A15
Id commune
Commune
I
Nom commune
Commune
A30
Agence Agence
A5 A40
Agence
A30
Exploitation Exploitation
A5 A25
Exploitation
N
No artificiel
Id agence Nom agence
No artificiel
Directeur Id exploitation Nom exploitation
No artificiel
SAU
Identifi ant O
O O
O
Modèle conceptuel des données COMMUNE Id commune Nom commune SITUER SUR
0,n
0,n
LOCALISER DANS 1,1
1,1 EXPLOITATION Id exploitation Nom exploitation SAU
GERER 1,1
COMPTABLE ID comptable 1,n Nom comptable Date naissance No tél
1,n TRAVAILLER 1,1
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
AGENCE Id agence Nom agence Directeur
Exercices MERISE
Page 2
Modèle logique des données COMMUNE ID_COMMUNE NOM_COMMUNE
EXPLOITATION ID_EXPLOITATION
ID_COMPTABLE
ID_COMMUNE
NOM_EXPLOITATION SAU
integer char(30)
COMPTABLE char(5) char(5) integer char(25) numeric
ID_COMPTABLE ID_AGENCE NOM_COMPTABLE DATE_NAISSANCE NO_TEL
char(5) char(5) char(30) date char(15)
AGENCE ID_AGENCE ID_COMMUNE NOM_AGENCE DIRECTEUR
char(5) integer char(40) char(30)
EXERCICE 2 GESTION DES LOGEMENTS DANS UNE AGENCE IMMOBILIERE Choix de gestion : - L’unité géographique retenue pour la gestion des logements est le quartier et on considère que chaque commune possède au moins un quartier. - On ne s’intéresse qu’aux signataires du contrat uniquement et pas aux locataires - Les logements inoccupés font également partie de la gestion - L’historique des occupations des logements n’est pas utile Liste des informations retenues dans le modèle : Nom Id commune Nom commune Distance agence Nombre d'habitants N°identification Nom Prenom Date de naissance N°téléphone N° logement No Rue Superficie Loyer Id quartier Libellé quartier Type logement Charges forfaitaires
Commentaire No artificiel Distance moyenne d’une ville par rapport à l’agence No artificiel
No artificiel
No artificiel Classifie le logement en fonction du nb de pièces (ex : T1, T2) Montant forfaitaire appliqué en fonction du type (ex : 200F pour un studio).
Entité Commune Commune Commune
I A45 N
Identifi ant Oui Non Non
Commune Individu Individu Individu Individu Individu Logement Logement Logement Logement Logement Quartier Quartier Type logement
N I A35 A30 D A12 I A5 A60 N N I A35 A25
Non Oui Non Non Non Non Oui Non Non Non Non Oui Non Oui
Type logement
N
Non
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Type
Exercices MERISE
Page 3
Modèle conceptuel des données
INDIVIDU N°identification Nom Prenom Date de naissance N°téléphone
1,1
0,n OCCUPER
LOGEMENT N° logement no Rue Superficie Loyer
1,1
CORRESPONDRE
0,n
1,1
TYPE DE LOGEMENT Type logement Charges forfaitaires
APPARTENIR
0,n Quartier Id quartier Libellé quartier
1,1
Situer dans
1,n
COMMUNE Id commune Nom commune Distance agence Nombre d'habitants
Modèle logique des données LOGEMENT
INDIVIDU N_IDENTIFICATION N__LOGEMENT NOM PRENOM DATE_DE_NAISSANCE N_TELEPHONE
integer integer char(35) char(30) date char(12)
N__LOGEMENT TYPE_LOGEMENT ID_QUARTIER NO RUE SUPERFICIE LOYER
integer char(25) integer char(5) char(60) numeric numeric TYPE_DE_LOGEMENT TYPE_LOGEMENT char(25) CHARGES_FORFAITAIRES numeric
QUARTIER ID_QUARTIER integer ID_COMMUNE integer LIBELLE_QUARTIER char(35)
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
COMMUNE ID_COMMUNE NOM_COMMUNE DISTANCE_AGENCE NOMBRE_D_HABITANTS
Exercices MERISE
integer char(45) numeric numeric
Page 4
EXERCICE 3 GESTION DES DROITS A PRODUIRE D’UNE EXPLOITATION Choix de gestion : - On ne gère pas l’historique de la SAU des exploitations - L’information commune n’est donné qu’à titre indicatif. Liste des informations retenues dans le modèle : Nom
Droit Droit
A5 A30
Identifi ant Oui Non
Unité
Droit
A20
Non
Id exploitation
Exploitation
A5
Oui
Nom exploitation
Exploitation
A30
Non
Commune
Exploitation
A30
Non
SAU
Exploitation
N
Non
Période Période
I D
Oui Non
Date fin
Période
D
Non
Valeur Droit
Posséder (A)
D
Non
Id droit Libellé droit
Id période Date début
Commentaire No artificiel Représente un quota. Ex : quota laitier, droit de plantation.
No artificiel
Entité / association
Type
1ère solution : représentation conceptuelle simplifiée mais cela soulève un problème de clé lors de la génération du modèle logique EXPLOITATION
POSSEDER
Id exploitation Nom exploitation Commune SAU
0,n
EXPLOITATION Id exploitation Nom exploitation Commune SAU
0,n
Valeur droit Date début Date fin
DROIT 0,n
Id droit Libellé droit Unité
2ème solution :
POSSEDER Valeur droit 0,n
0,n
DROIT Id droit Libellé droit Unité
PERIODE Id période Date debut Date fin
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 5
3ème solution : EXPLOITATION Id exploitation Nom exploitation Commune SAU
POSSEDER 0,n
VALEUR DROIT 1,1 Identifiant valeur Montant droit 1,1
1,1
DROIT Id droit 1,n Libellé droit Unité
ATTRIBUER
EST VALABLE POUR
1,n PERIODE Id période Date debut Date fin
4ème solution :
Id exploitation Nom exploitation Commune SAU
VALEUR DROIT
CONCERNER
EXPLOITATION
1,1 0,n
Id valeur
Valeur droit Date début Date fin
DROIT 1,1
CONCERNER
0,n
Id droit Libellé droit Unité
Modèle logique des données 1ère solution : il y a un problème de clé dans la table « POSSEDER » car la même exploitation ne pourra pas posséder le même droit plus d’une fois (risque de doublons). POSSEDER ID_EXPLOITATION ID_DROIT VALEUR_DROIT DATE_DEBUT DATE_FIN ID_EXPLOITATION = ID_EXPLOITATION
char(5) char(5) numeric date date
ID_DROIT = ID_DROIT
EXPLOITATION ID_EXPLOITATION NOM_EXPLOITATION COMMUNE SAU
char(5) char(30) char(30) numeric
DROIT ID_DROIT LIBELLE_DROIT UNITE
char(5) char(30) char(20)
La solution consiste donc à ajouter le champ date début à la clé multiple.
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 6
2ème solution : le modèle logique est correct mais la table période n’est utile que dans le cas où il existe des périodes normalisées (qui sont donc réutilisées plusieurs fois) EXPLOITATION ID_EXPLOITATION NOM_EXPLOITATION COMMUNE SAU
char(5) char(30) char(30) numeric
POSSEDER ID_EXPLOITATION ID_DROIT ID_PERIODE VALEUR_DROIT
char(5) char(5) integer numeric
DROIT ID_DROIT LIBELLE_DROIT UNITE
char(5) char(30) char(20)
PERIODE ID_PERIODE DATE_DEBUT DATE_FIN
integer date date
3ème solution : VALEUR_DROIT
EXPLOITATION ID_EXPLOITATION NOM_EXPLOITATION COMMUNE SAU
char(5) char(30) char(30) numeric
IDENTIFIANT_VALEUR ID_EXPLOITATION ID_DROIT ID_PERIODE MONTANT_DROIT
smallint char(5) char(5) integer numeric
DROIT ID_DROIT LIBELLE_DROIT UNITE
char(5) char(30) char(20)
PERIODE ID_PERIODE DATE_DEBUT DATE_FIN
integer date date
4ème solution : VALEUR DROIT EXPLOITATION Id exploitation Nom exploitation Commune SAU
CHAR(5) CHAR(30) CHAR(30) NUMERIC
Id valeur Id exploitation Id droit Valeur droit Date début Date fin
NUMERIC CHAR(5) CHAR(5) NUMERIC DATE DATE
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
DROIT CHAR(5) Id droit Libellé droit CHAR(30) Unité CHAR(20)
Exercices MERISE
Page 7
EXERCICE 4 GESTION DES RENDEMENTS DES PARCELLES D’UNE EXPLOITATION Choix de gestion : - Les coordonnées géographiques ne sont fournies qu’à titre indicatif - On ne n’intéresse ici qu’aux parcelles culturales - On considère que le liste des éléments d’un engrais peut s’élargir à d’autres que les N, P et K. - La jachère est considérée comme une production particulière Liste des informations retenues dans le modèle : Nom Identifiant culture Date début Date fin Qté récoltée Date Code élément Libellé élément Id engrais Nom engrais No parcelle Surface Nom parcelle Coordonnées Code production Nom production Unité Valeur Qté épandue
Commentaire No artificiel
Ex : N, P ou K
No artificiel
A titre d’information : les coordonnées GPS
Ex : ha, Q , kg … Ex : proportion d’un élément dans un engrais
Entité / association Culture Culture Culture Culture Date Elément chimique Elément chimique Engrais Engrais Parcelle Parcelle Parcelle Parcelle
SI D D N D A5 A20 N A20 SI N A20 A20
Identifi ant Oui Non Non Non Oui Oui Non Oui Non Oui Non Non Non
Production Production Unité Posséder (A)
SI A20 A20 N
Oui Non Oui Non
Epandre (A)
N
non
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Type
Exercices MERISE
Page 8
Modèle conceptuel des données
Production PRODUIRE
Code production Nom production
1,1 GERER
0,n 1,n
1,1
Parcelle No parcelle Surface Nom parcelle Coordonnées
CULTURE Identifiant culture Date début Date fin Qté récoltée
UNITE
0,n
1,1
UNité
0,n
CONCERNER
0,n
AVOIR
0,n
Correspondre Engrais Id engrais Nom engrais
1,n
EPANDRE
1,1 POSSEDER
0,n
Valeur
Qté épandue
1,1
0,n
ELEMENT CHIMIQUES
1,n
Code élément Libellé élément
Date Date
Modèle logique des données
PARCELLE NO_PARCELLE SURFACE NOM_PARCELLE COORDONNEES
smallint numeric char(20) char(20)
CULTURE IDENTIFIANT_CULTURE NO_PARCELLE CODE_PRODUCTION DATE_DEBUT DATE_FIN QTE_RECOLTEE
EPANDRE ID_ENGRAIS
NO_PARCELLE smallint DATE date QTE_EPANDUE numeric
DATE DATE date
smallint smallint smallint date date numeric
PRODUCTION CODE_PRODUCTION smallint UN char(20) NOM_PRODUCTION char(20)
UNITE UN char(20)
ENGRAIS ID_ENGRAIS UN NOM_ENGRAIS
char(20) char(20)
POSSEDER ID_ENGRAIS CODE_ELEMENT VALEUR
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
char(5)
ELEMENT_CHIMIQUES CODE_ELEMENT UN LIBELLE_ELEMENT
Exercices MERISE
char(5) char(20) char(20)
Page 9
EXERCICE 5 GESTION D’UN CLUB DE CHASSE SOUS-MARINE Choix de gestion : - Une chasse est toujours individuelle - Toutes les sorties réalisées le même jour sont comptabilisées dans une et une seule chasse Liste des informations retenues dans le modèle : Nom
Commentaire
Id chasseur Pseudo Date naissance Id_chasse Date chasse Id espèce Nom espèce Poids moyen Code niveau Libellé niveau Nb de points
Entité / association
Type
Chasseur Chasseur Chasseur Chasse Chasse Espèce Espèce Espèce Niveau tir Niveau tir Tirer (A)
No artificiel
No artificiel No artificiel
Code artificiel Ex : facile, moyen, difficile
I A25 D I D I A20 N A5 A25 SI
Identifi ant Oui Non Non Oui non Oui Non Non Oui Non Non
Modèle conceptuel des données CHASSE Id_chasse Date chasse
1,1
Réaliser 0,n
CHASSEUR Id chasseur Pseudo Date naissance
0,n
Tirer Nb poissons
ESPECE 1,n Id espèce Nom espèce Poids moyen
NIVEAU TIR 1,1
Classifier
Code niveau 1,n Libellé niveau Nb de points
Modèle logique des données CHASSEUR
CHASSE ID_CHASSE ID_CHASSEUR DATE_CHASSE
integer smallint integer
ID_ESPECE CODE_NIVEAU NOM_POISSON POIDS_MOYEN
integer char(25) date
NIVEAU_TIR
ESPECE
TIRER ID_ESPECE NB_POISSONS ID_CHASSE
ID_CHASSEUR PSEUDO DATE_NAISSANCE
integer integer date
integer char(5) char(20) numeric
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
CODE_NIVEAU LIBELLE_NIVEAU NB_DE_POINTS
char(5) char(25) smallint
Exercices MERISE
Page 10
EXERCICE 6 GESTION DES COURSES HIPPIQUES Choix de gestion : - Un jockey peut être propriétaire - On ne gère pas l’historique du nombre de places dans un champ de course - On ne gère que les jockeys ayant participé à une course. Liste des informations retenues dans le modèle : Nom
Commentaire
Id catégorie Libellé catégorie Id champ course Nom du champ de course Nombre de places Identifiant cheval Nom cheval Date naissance Sexe Identifiant course Désignation course Identifiant épreuve Dotation Date épreuve Identifiant individu Nom individu Prénom individu Numéro de dossard
No artificiel
Place
Place obtenue à l’issue d’une épreuve
No artificiel
No artificiel
No artificiel No artificiel
No artificiel
No commun au cheval et au jockey lors d’une épreuve
Entité / association Catégorie Catégorie Champ de course Champ de course
I A20 I A25
Identifi ant Oui Non Oui Non
Champ de course Cheval Cheval Cheval Cheval Course Course Epreuve Epreuve Epreuve Individu Individu Individu Participer (A)
N SI A30 D A1 A5 A25 SI N D N A25 A35 SI
Non Oui Non Non Non Oui Non Oui Non Non Oui Non Non Non
SI
Non
Participer (A)
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Type
Exercices MERISE
Page 11
Modèle conceptuel des données CHAMP DE COURSE Id champ course Nom du champ de course Nombre de places ACCUEILLIR
1,n ACCUEILLIR
1,n
1,n
CATEGORIE DE COURSES Id catégorie Libellé catégorie 1,n
APPARTENIR 1,1 1,1
COURSE Identifiant course Désignation course
INDIVIDU 0,n Identifiant individu Nom individu Prénom individu
EST PROPRIETAIRE DE
1,n
EPREUVE Identifiant épreuve Dotation Date épreuve 1,n
COMPORTER 1,1 PARTICIPER
0,n
Numéro de dossard Place
CHEVAL Identifiant cheval Nom cheval Date naissance 1,1 Sexe
1,n 0,n est enfant de 0,n
EST PARENT DE
est parent de
Modèle logique des données TL_CATEGORIE_CHAMP_COURSE ID_CHAMP_COURSE integer ID_CATEGORIE integer CHAMP_DE_COURSE NOM_CHAMP_COURSE char(25) NB_PLACES numeric integer ID_CHAMP_COURSE
ID_CATEGORIE = ID_CATEGORIE
ID_CHAMP_COURSE = ID_CHAMP_COURSE
CATEGORIE_DE_COURSES CATEGORIE char(20) integer ID_CATEGORIE
ID_CHAMP_COURSE = ID_CHAMP_COURSE
ID_CATEGORIE = ID_CATEGORIE
COURSE ID_COURSE DESIGNATION_COURSE ID_CHAMP_COURSE ID_CATEGORIE
IDENTIFIANT_INDIVIDU = IDENTIFIANT_INDIVIDU
char(5) char(25) integer integer
ID_COURSE = ID_COURSE
EPREUVE IDENTIFIANT_EPREUVE smallint ID_COURSE char(5) DOTATION numeric DATE_EPREUVE date
INDIVIDU IDENTIFIANT_INDIVIDU numeric NOM_INDIVIDU char(25) PRENOM_INDIVIDU char(35)
IDENTIFIANT_INDIVIDU = IDENTIFIANT_INDIVIDU IDENTIFIANT_CHEVAL = IDENTIFIANT_CHEVAL
IDENTIFIANT_EPREUVE = IDENTIFIANT_EPREUVE
PARTICIPER IDENTIFIANT_EPREUVE
IDENTIFIANT_INDIVIDU
IDENTIFIANT_CHEVAL
NUMERO_DE_DOSSARD PLACE
smallint numeric smallint smallint smallint
CHEVAL IDENTIFIANT_CHEVAL IDENTIFIANT_INDIVIDU NOM_CHEVAL DATE_NAISSANCE SEXE
IDENTIFIANT_CHEVAL = CHE_IDENTIFIANT_CHEVAL smallint EST_PARENT_DE numeric IDENTIFIANT_CHEVAL
char(30) CHE_IDENTIFIANT_CHEVAL
date
char(1)
smallint smallint
IDENTIFIANT_CHEVAL = IDENTIFIANT_CHEVAL
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 12
EXERCICE 7 GESTION DES CONCOURS D’APPRENTIS MENUISIERS
Modèle conceptuel des données
ETRE TUTEUR DE
0,n 0,1 CONCOURS No concours Nom concours Lieu Date Dotation
INDIVIDU Code individu Nom Prénom 0,n
1,n Obtenir Concerner
1,1
1,1 PARTICIPATION Id participation Nb points obtenus Nom objet réalisé
Modèle logique des données
INDIVIDU CODE_INDIVIDU IND_CODE_INDIVIDU NOM PRENOM
CONCOURS NO_CONCOURS numeric NOM_CONCOURS char(50) LIEU char(50) DATE date DOTATION numeric
char(5) char(5) char(50) char(50)
PARTICIPATION ID_PARTICIPATION CODE_INDIVIDU NO_CONCOURS NB_POINTS_OBTENUS NOM_OBJET_REALISE
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
numeric char(5) numeric numeric char(50)
Exercices MERISE
Page 13
EXERCICE 8 GESTION DU PARCOURS DU COMBATTANT Choix de gestion : - Il n’y a pas de transition entre les obstacles. Le temps total pour le parcours est donc la somme des temps obtenus sur chacun des obstacles. Liste des informations retenues dans le modèle : Nom Code niveau Libellé niveau Bonus Nom obstacle Note mini N° participation Date Matricule Nom Prénom Note instructeur Temps
Commentaire Code artificiel Ex : facile, moyen, difficile Bonus relatif au niveau de difficulté
No artificiel No de matricule du soldat
Note attribuée par l’instructeur au passage d’un obstacle Temps réalisé sur le passage d’un obstacle
Entité / association Niveau difficulté Niveau difficulté Niveau difficulté
A5 A20 N
Identifi ant Oui Non Non
Obstacle Obstacle Participation Participation Soldat Soldat Soldat Passer (A)
A30 N N D A20 A30 A40 N
Oui Non Oui Non Oui Non Non Non
D
non
Passer (A)
Type
Modèle conceptuel des données PARTICIPATION
1,1 Avoir
N° participation Date 0,n Passer
0,n SOLDAT
Note instructeur Temps
1,n
OBSTACLE Nom obstacle Note mini
Matricule Nom Prenom
NIVEAU DIFFICULTE
1,1 0,n
Code niveau Libellé niveau Bonus
Avoir
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 14
Modèle logique des données PARTICIPATION MATRICULE = MATRICULE
N__PARTICIPATION MATRICULE DATE
numeric char(20) date
N__PARTICIPATION = N__PARTICIPATION
PASSER NOM_OBSTACLE
N__PARTICIPATION
NOTE_INSTRUCTEUR TEMPS SOLDAT MATRICULE char(20) NOM char(30) PRENOM char(40)
char(30) numeric numeric date NIVEAU_DIFFICULTE CODE_NIVEAU char(5) LIBELLE_NIVEAU char(20) BONUS numeric
NOM_OBSTACLE = NOM_OBSTACLE
OBSTACLE NOM_OBSTACLE char(30) CODE_NIVEAU char(5) NOTE_MINI numeric
CODE_NIVEAU = CODE_NIVEAU
EXERCICE 9 GESTION DES TEMPS DE TRAVAUX Choix de gestion : - On ne gère pas l’historique des types d’agent - Un agent ne peut être que d’un et d’un seul type - Un sous-type de travail n’appartient qu’à un seul type de travail - Si 2 agents travaillent ensemble, on individualisera leurs interventions. Liste des informations retenues dans le modèle : Nom no acteur Nom No Rue Code postal Code ville Nom ville Id catégorie d'agent Catégorie d'agent Code tva Libellé code TVA No intervention Date Heure début Heure fin Id période Date début période Date fin période Id sous type Libellé sous type
Commentaire No artificiel
No artificiel No artificiel Ex : comptable, informaticien
No artificiel
No artificiel
No artificiel Ex : suivi JA, autre
Entité
Type
ACTEUR ACTEUR ACTEUR ACTEUR ACTEUR VILLE VILLE CATEGORIE AGENT CATEGORIE AGENT CODE TVA CODE TVA INTERVENTIONS INTERVENTIONS INTERVENTIONS INTERVENTIONS PERIODE PERIODE PERIODE SOUS TYPE TRAVAIL SOUS TYPE TRAVAIL
SI A50 A5 A50 A8 A8 A8 A5 A45 A5 A45 SI D T T I D D A5 A35
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Identifi ant Oui Non Non Non Non Oui Non Oui Non Oui Non Oui Non Non Non Oui Non Non Oui Non
Exercices MERISE
Page 15
Nom
Commentaire
Id type travail Libellé type travail Coût horaire HT Taux TVA
No artificiel Ex : comptabilité
Entité
Type
SOUS TYPE TRAVAIL TYPE TRAVAIL ASSOCIER (A) CONCERNER (A)
A5 A35 N N
Identifi ant Oui Non Non Non
Modèle conceptuel des données VILLE No ville Nom ville
Classifier 0,n
1,n Situer dans
CODE TVA Code tva Libellé code TVA
Concerner
1,n
Taux TVA
1,n
1,1 TYPE TRAVAIL Id type travail Libellé type travail
1,1 ACTEUR no acteur Nom No Rue Code postal
0,1
Appartenir
PERIODE Id période 0,n Date début période Date fin période
Associer
1,n
Coût horaire HT
0,n
Classifier
0,1 Concerner
0,n
0,n
0,n
SOUS TYPE TRAVAIL Id sous type Libellé sous type
1,1 0,n CATEGORIE AGENT Id catégorie d'agent Catégorie d'agent
Effectuer par agent 1,1
Effectuer pour client
INTERVENTIONS No intervention Date Heure début Heure fin 0,1
Modèle logique des données CODE_TVA CODE_TVA char(5) LIBELLE_CODE_TVA char(45) VILLE NO_VILLE integer NOM_VILLE char(80)
ACTEUR NO_AGENT ID_CATEGORIE_D_AGENT NO_VILLE NOM NO RUE CODE_POSTAL
TYPE_TRAVAIL ID_TYPE_TRAVAIL char(5) CODE_TVA char(5) LIBELLE_TYPE_TRAVAIL char(35)
smallint char(5) integer char(50) char(5) char(50) char(8)
CATEGORIE_AGENT ID_CATEGORIE_D_AGENT char(5) CATEGORIE_D_AGENT char(45)
TL_CODE_PERIODE CODE_TVA ID_PERIODE TAUX_TVA
TL_TYPE_PERIODE ID_TYPE_TRAVAIL
ID_PERIODE
COUT_HORAIRE_HT
char(5) integer numeric
PERIODE ID_PERIODE DATE_DEBUT_PERIODE DATE_FIN_PERIODE
integer date date
char(5) integer numeric
SOUS_TYPE_TRAVAIL ID_SOUS_TYPE char(5) ID_TYPE_TRAVAIL char(5) LIBELLE_SOUS_TYPE char(35)
INTERVENTIONS NO_INTERVENTION
NO_AGENT
ID_SOUS_TYPE
ACT_NO_AGENT
DATE HEURE_DEBUT HEURE_FIN
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
smallint smallint char(5) smallint date time time
Exercices MERISE
Page 16
EXERCICE 10 GESTION DES RESULTATS DE MATCHS DE FOOTBALL Dictionnaire des données Nom Barême défaite Barême nul Barême victoire Code équipe Code stade Date match Date deb Date début entrai
Commentaire Ex : 0 pt Ex : 1 pt Ex : 3 pts Identifiant artificiel Identifiant artificiel
Date fin Date fin entrai Id but Id participation Identifiant compétition Libellé compétition Libellé nationalité Libellé saison Minute but Minute début Minute fin Nb de places Nb spectateurs No individu No match No nationalité No saison Nom équipe Nom individu Nom stade Numéro journée Numéro maillot Poste Prénom individu Type de but
Identifiant artificiel Identifiant artificiel Identifiant artificiel
Identifiant artificiel Identifiant artificiel Identifiant artificiel
But pour ou contre son camp
Entité
Type
RAPPORTER (A) RAPPORTER (A) RAPPORTER (A) EQUIPE STADE MATCH JOUER DANS (A) AVOIR POUR ENTRINEUR (A) JOUER DANS (A) AVOIR POUR ENTRINEUR (A) BUT PARTICIPATION CHAMPIONNAT
N N N N N D D D
CHAMPIONNAT NATIONALITE SAISON BUT PARTICIPATION PARTICIPATION STADE MATCH INDIVIDU MATCH NATIONALITE SAISON EQUIPE INDIVIDU STADE AFFECTER A (A) JOUER DANS (A) JOUER DANS (A) INDIVIDU BUT
A50 A40 A50 N N N N N N N N N A40 A40 A40 N N A20 A30 A20
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Identifi ant
O O
D D N N N
O O O
O O O
Exercices MERISE
Page 17
Modèle conceptuel des données
NATIONALITE No nationalité 0,n Libellé nationalité
Avoir
1,1 Marquer
INDIVIDU No individu Nom individu Prénom individu
0,n
1,1
Arbitrer
0,n
BUT Id but Minute but Type de but
0,n
Avoir
0,n 0,n
0,n
1,1 1,1
PARTICIPATION
Relatif à
1,1 Id participation Minute début Minute fin
1,1
Remplacer 0,1
1,n
Concerner
0,n 1,n
MATCH No match Nb spectateurs Date match
1,1
Equipe recoit
1,n
1,1
Jouer dans Date deb Date fin Poste Numéro maillot
EQUIPE Code équipe Nom équipe
1,n 0,n
Avoir pour entraîneur Date début entrai Date fin entrai
1,n
STADE Code stade 1,n Nom stade Nb de places
Se jouer dans
Affecter à Numéro journée
1,n CHAMPIONNAT Identifiant compétition Libellé compétition Rapporter
1,n 1,n SAISON No saison Libellé saison
1,n
1,n
Barême victoire Barême nul Barême défaite
Participer
1,n 0,n
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 18
Commentaires MCD Entité INDIVIDU Cette entité regroupe à la fois les joueurs, entraîneurs et arbitres. On distinguera les différents types d’individu par le biais des associations « jouer dans », « arbitrer » et « avoir pour entraîneur ». NB : on considère que pour un match donné, on ne stocke que le nom de l’arbitre principal. Association « jouer dans » Le même joueur peut jouer dans plusieurs clubs lors de la même saison. Il faut donc gérer une période avec date début et date fin dans l’association. Par contre, le même joueur aura toujours le même numéro de maillot et le même poste pour une équipe et pour une saison donnée. Ces 2 informations sont donc stockées ici et non pas au niveau de chaque match, ce qui serait redondant. Entité équipe Cette entité sert à stocker les noms de club. Entité match Sont gérées ici les informations propres à chaque match : à savoir le nombre de spectateurs, la date du match … NB : on connaît la journée du match par l’association « affecter à ». De même, le stade dans lequel se déroule le match est connu par l’association « se jouer dans » avec l’entité « stade ». Entité stade On gère ici le nom du stade ainsi que sa capacité (nb places) que l’on estime fixe. Entité saison Elle sert à gérer le libellé de la saison ainsi que le barème des victoires qui dépend de chaque saison et de chaque championnat (d’où l’association « rapporter ») et qui sert à calculer le classement (ex : victoire à 3 points pour la saison 1999-2000 pour le championnat de France de D1 et victoire à 2 points pour la saison 1990-1991 pour le championnat d’Italie de D1). On considère ici que les barèmes des défaites et des nuls peuvent également évoluer. Entité championnat Cela sert à gérer le libellé du championnat et à différencier ainsi le championnat de France de la coupe d’europe. (les différentes coupes d’Europe seront en effet considérées comme des championnats particuliers). NB : pour le championnat de France, on considèrera qu’il a autant de championnats que de divisions. On aura par exemple les 2 championnats suivants : Championnat de France – Division 1 Championnat de France – Division 2 Entité participation Cette entité sert à gérer la composition des équipes pour un match donné. Pour chaque joueur, on gère ainsi à quelle minute il est entré sur le terrain et à quelle minute il en est sorti. ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 19
Il est nécessaire d’ajouter une association « remplacer » pour savoir qui rentre à la place de qui car s’il y a 2 remplacements à la même minute, on ne sait pas qui remplace qui. (cf. l’exemple donné dans l’énoncé avec les 2 remplacements simultanés à la 80ème minute). Entité but Elle est utile pour connaître le nom des buteurs et la minute du but. On utilisera la propriété « type de but » pour savoir si le but a été marqué pour son équipe ou contre son camp. (cette information est nécessaire pour déterminer le score de la rencontre). NB : pour savoir quel équipe a remporté un match, il suffira par requête de voir quel est le joueur (ou les) qui a (ont) marqué, et sachant dans quelle équipe il (s) joue (nt), on en déduira le score du match. NB : pour savoir quelle est l’équipe qui reçoit pour un match, il est nécessaire d’avoir l’association « équipe reçoit ». Par déduction, on saura quelle est l’équipe visiteuse (on connaît les joueurs qui ont participé au match).
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 20
Modèle logique des données
INDIVIDU NO_JOUEUR
NOM_INDIVIDU PRENOM_INDIVIDU NO_NATIONALITE
NO_JOUEUR = NO_JOUEUR NO_JOUEUR = NO_JOUEUR
NO_JOUEUR = NO_JOUEUR
numeric char(40) char(30) numeric
NO_NATIONALITE = NO_NATIONALITE NO_JOUEUR = NO_JOUEUR
NATIONALITE NO_NATIONALITE LIBELLE_NATIONALITE
numeric char(40)
NO_JOUEUR = IND_NO_JOUEUR NO_JOUEUR = NO_JOUEUR
MATCH NO_MATCH CODE_EQUIPE CODE_STADE NO_JOUEUR NB_SPECTATEURS DATE_MATCH
BUT ID_BUT
NO_JOUEUR
NO_MATCH
MINUTE_BUT TYPE_DE_BUT
numeric numeric numeric numeric char(20)
numeric numeric numeric numeric numeric date
NO_MATCH = NO_MATCH
PARTICIPATION ID_PARTICIPATION
NO_MATCH
NO_JOUEUR
IND_NO_JOUEUR
MINUTE_DEBUT MINUTE_FIN
numeric numeric numeric numeric numeric numeric
TL_EQUIPE_JOUEUR CODE_EQUIPE
NO_JOUEUR
NO_SAISON
DATE_DEB DATE_FIN POSTE NUMERO_MAILLOT
numeric numeric numeric date date char(20) numeric
NO_MATCH = NO_MATCH
EQUIPE CODE_EQUIPE numeric char(40)
CODE_EQUIPE = CODE_EQUIPE
NOM_EQUIPE CODE_STADE = CODE_STADE
NO_MATCH = NO_MATCH
AFFECTER IDENTIFIANT_COMPETITION NO_SAISON NO_MATCH NUMERO_JOURNEE
CODE_EQUIPE = CODE_EQUIPE CODE_EQUIPE = CODE_EQUIPE CODE_EQUIPE = CODE_EQUIPE
ENTRAINEUR CODE_EQUIPE
NO_JOUEUR
DATE_DEBUT_ENTRAI DATE_FIN_ENTRAI
numeric numeric numeric numeric
numeric numeric date date
STADE CODE_STADE numeric NOM_STADE char(40) NB_DE_PLACES numeric
IDENTIFIANT_COMPETITION = IDENTIFIANT_COMPETITION
CHAMPIONNAT IDENTIFIANT_COMPETITION LIBELLE_COMPETITION
IDENTIFIANT_COMPETITION = IDENTIFIANT_COMPETITION
numeric char(50) PARTICIPER CODE_EQUIPE IDENTIFIANT_COMPETITION NO_SAISON
IDENTIFIANT_COMPETITION = IDENTIFIANT_COMPETITION
RAPPORTER NO_SAISON
IDENTIFIANT_COMPETITION
BAREME_VICTOIRE BAREME_NUL BAREME_DEFAITE
numeric numeric numeric numeric numeric
numeric numeric numeric
NO_SAISON = NO_SAISON
NO_SAISON = NO_SAISON
NO_SAISON = NO_SAISON
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
SAISON NO_SAISON numeric LIBELLE_SAISON char(50)
NO_SAISON = NO_SAISON
Exercices MERISE
Page 21
EXERCICE 11 GESTION D’UN ZOO Modèle conceptuel des données
1,1
ETRE SPECIFIQUE
SE COMPOSER
MENU TYPE Id menu Libellé aliment composé Qté recommandée
Pourcentage
ELEMENTS DE BASE 1,n Code élément Libellé élément
1,n
0,n RECEVOIR Qté absorbée Date repas Heure repas 1,n 0,n ESPECE Code espèce Libellé espèce 0,n
0,n
1,n
Appartenir
ANIMAL (1,1) Nom baptême Sexe Date naissance Date décès
1,n
0,n A pour parents 0,n
1,n
Pouvoir cohabiter
OCCUPER Pouvoir vivre
PERIODE Id période 1,n Date début Date fin
1,n 1,n
ENCLOS No enclos Nom enclos
COMMENTAIRES Exemples d’aliments de base : protides, glucides, … Il est nécessaire de distinguer la quantité recommandée pour un menu de la quantité réellement absorbée.
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 22
Modèle logique des données
SE_COMPOSER ID_MENU CODE_ELEMENT POURCENTAGE
MENU_TYPE ID_MENU CODE_ESPECE LIBELLE_ALIMENT_COMPOSE QTE_RECOMMANDEE
char(5) char(5) numeric
ELEMENTS_DE_BASE
char(5) char(5) char(45) numeric
CODE_ELEMENT LIBELLE_ELEMENT
char(5) char(45)
RECEVOIR CODE_ESPECE NOM_BAPTEME ID_MENU QTE_ABSORBEE DATE_REPAS HEURE_REPAS
char(5) char(45) char(5) numeric date numeric A_POUR_PARENTS
ANIMAL ESPECE CODE_ESPECE LIBELLE_ESPECE
char(5) char(45)
char(5) char(45) char(1) date date
OCCUPER CODE_ESPECE
NOM_BAPTEME
NO_ENCLOS
ID_PERIODE
POUVOIR_COHABITER CODE_ESPECE ESP_CODE_ESPECE
CODE_ESPECE NOM_BAPTEME SEXE DATE_NAISSANCE DATE_DECES
char(5) char(5)
POUVOIR_VIVRE CODE_ESPECE NO_ENCLOS
char(5) smallint
char(5) char(45) smallint numeric
CODE_ESPECE NOM_BAPTEME ANI_CODE_ESPECE ANI_NOM_BAPTEME
char(5) char(45) char(5) char(45)
PERIODE ID_PERIODE numeric DATE_DEBUT date DATE_FIN date
ENCLOS NO_ENCLOS NOM_ENCLOS
smallint char(45)
Pour la cohabitation des espèces, il faudra établir une règle de gestion pour éviter de rentrer 2 fois la même information. Exemple : il est inutile de stocker : CODE_ESPECE SINGE GORILLE
ESP_CODE_ESPECE GORILLE SINGE
Dans ce cas, un seul enregistrement suffit.
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 23
EXERCICE 12 GESTION D’UN CLUB DE TRIATHLON Modèle conceptuel des données Modèle Conceptuel de Données Projet
: GESTION CLUB TRIATHLON
Modèle : MCD Auteur : J. Steffe
CLUB Code club libellé club
Version
12/03/101
1,n PERIODE
0,n
Id période Date début Date fin
VILLE Code ville libellé ville
0,n Se situer
INSCRIRE
0,n
Habiter 0,n
0,n
1,1
Avoir
1,n
Numéro licence
MANIFESTATION No manifestation date manifestation
1,1
ATHLETE Code athlète nom prénom no 1,1 rue code postal tel portable 0,n date naissance Cardio Sexe 1,n
0,n
posséder Poids Taille Fréquencemax
Avoir
0,n PROFESSION Code profession Libellé profession
1,n Composer
Concourir place scratch place catégorie
1,1
1,n
1,n
1,n
COMPETITION code compétition conditions climatiques 0,n nb participants
Faire
Concerner
1,1
A PRATIQUE nb ans
1,n Classifier 1,1
0,n
1,1
RESULTATS id resultat temps place transition
SPORT Code sport libellé sport
Classifier
1,1 0,n
1,1
Débuter Année 1ère participation
1,n
TYPE COURSE Code type course Libellé type course
0,n
TYPE COMPETITION Code type compétition Libellé type compétition 1,n
Promo, sprint ...
Duathlon, triathlon, course à pieds Composer
Concerner
0,n TYPE EPREUVE Code type épreuve Libellé type épreuve
classifier 1,n
1,1
EPREUVE
1,1
Id épreuve numéro d'ordre distance
Natation, vélo, course à pied
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 24
COMMENTAIRES MCD - Définition des entités. MANIFESTATION : Une manifestation est un ensemble de courses se déroulant le même jour dans un même lieu. COMPETITION : une compétition est une course particulière se déroulant lors d’une manifestation donnée. Exemple : le triathlon sprint d’Agen le 17/08/2001. TYPE DE COMPETITION : elle précise la nature d’une course. Exemple d’occurrence : Promotion, sprint, CD … TYPE DE COURSE : cette entité sert à différencier la nature des courses : duathlon, triathlon et course à pieds. TYPE EPREUVE : indique la nature d’un enchaînement dans une course. Exemple d’occurrences : natation, course à pieds, vélo … ERPREUVE : elle sert à distinguer les différents enchaînements d’un type de compétition donné avec leur ordre d’enchaînement et la distance. Par exemple, le type de compétition « triathlon promo » se compose de 3 épreuves : Epreuve 1 : natation sur 500 m Epreuve 2 : Vélo sur 20 km Epreuve 3 : Course à pieds sur 5 km La catégorie (ex : V1 : vétéran 1) n’est pas stockée puisqu’elle est le résultat d’un calcul. - Gestion de l’historique. Certaines informations ne nécessitent pas de gérer l’historique. Il s’agit par exemple de « possession d’un cardio-fréquencemètre », « profession exercée » … pour ce type d’information, on désire simplement connaître le dernier état. D’autres informations nécessitent par contre d’intégrer dans le modèle la gestion de l’historique : - le numéro de licence (il n’est pas le même chaque année) - la taille, le poids et la fréquence max (on veut les avoir sur au moins 2 ans) - les clubs auxquels l’athlète s’est inscrit Rappel : dans le doute (si l’utilisateur n’a pas de certitudes quant à ses choix de gestion), on modélisera en tenant compte de l’historique. - Gestion des résultats. Seuls les résultats des athlètes du club sont enregistrés dans le détail (cf. entité « Résultats »). Pour avoir la place au classement général ainsi que la place dans la catégorie, il faut donc saisir cette information (elle ne peut pas être obtenu par calcul). => cf. association « concourir ». Le classement pour le club est par contre calculable à partir des résultats individuels.
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Exercices MERISE
Page 25
NB : au niveau de la compétition , il est nécessaire de stocker le nombre de participants car on ne dispose pas des résultats détaillés de tous les athlètes et on en peut donc pas calculer le nombre total d’inscrits. Modèle logique des données CLUB CODE_CLUB char(5) LIBELLE_CLUB char(5) PERIODE
INSCRIRE CODE_CLUB
ID_PERIODE
CODE_ATHLETE
ID_PERIODE DATE_DEBUT DATE_FIN
numeric date date VILLE
char(5) numeric char(20)
CODE_VILLE LIBELLE_VILLE
char(5) char(45)
TL_PERIODE_ATHLETE ID_PERIODE CODE_ATHLETE NUMERO_LICENCE TL_ATHLETE_ANNEE POIDS numeric TAILLE numeric FREQUENCEMAX numeric CODE_ATHLETE char(20) ID_PERIODE numeric
ATHLETE CODE_PROFESSION
CODE_VILLE
NOM PRENOM NO RUE CODE_POSTAL TEL PORTABLE DATE_NAISSANCE CARDIO CODE_ATHLETE
SEXE
char(5) numeric char(20)
SPORT CODE_SPORT LIBELLE_SPORT
numeric char(20)
MANIFESTATION NO_MANIFESTATION CODE_VILLE DATE_MANIFESTATION
A_PRATIQUE CODE_SPORT NB_ANS CODE_ATHLETE
char(5) char(45)
char(5) char(5) char(40) char(40) char(4) char(50) char(5) char(10) char(10) date numeric(1) char(20) char(20)
numeric char(5) date
CLASSEMENT CODE_COMPETITION PLACE_SCRATCH CODE_ATHLETE PLACE_CATEGORIE
char(5) numeric char(20) numeric
COMPETITION CODE_COMPETITION NO_MANIFESTATION CODE_TYPE_COMPETITION CONDITIONS_CLIMATIQUES NB_PARTICIPANTS
char(5) numeric char(5) char(60) numeric
RESULTATS PROFESSION CODE_PROFESSION char(5) LIBELLE_PROFESSION char(40)
ID_RESULTAT CODE_COMPETITION ID_EPREUVE TEMPS PLACE TRANSITION CODE_ATHLETE
numeric char(5) numeric numeric numeric numeric char(20)
TYPE_COMPETITION CODE_TYPE_COMPETITION CODE_TYPE_COURSE LIBELLE_TYPE_COMPETITION
char(5) char(5) char(35)
TYPE_COURSE DEBUTER CODE_ATHLETE CODE_TYPE_COURSE ANNEE_1ERE_PARTICIPATION
char(20) char(5)
TYPE_EPREUVE CODE_TYPE_EPREUVE LIBELLE_TYPE_EPREUVE
char(5) char(25)
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
CODE_TYPE_COURSE LIBELLE_TYPE_COURSE
char(5) char(35)
EPREUVE ID_EPREUVE CODE_TYPE_COMPETITION CODE_TYPE_EPREUVE NUMERO_D_ORDRE DISTANCE
numeric char(5) char(5) numeric numeric
Exercices MERISE
Page 26
EXERCICE 13 GESTION DES FRAIS DE DEPLACEMENT Dictionnaire des données Nom
Code
Agence AGENCE Année civile ANNEE_CIVILE Banque BANQUE Borne inf BORNE_INF Borne sup BORNE_SUP Caisse CAISSE Centre CCP CENTRE_CCP Code Agent CODE_AGENT Code moyen CODE_MOYEN Code puissance CODE_PUISSANCE commentaire COMMENTAIRE CP CP Date autorisation DATE_AUTORISATION Date début DATE_DEBUT Date depart DATE_DEPART Date départ DATE_DEPART Date fin DATE_FIN Date ordre mission DATE_ORDRE_MISSION Date retour DATE_RETOUR Date retour DATE_RETOUR Frais prévus séjour FRAIS_PREVUS_SEJOUR Frais prévus transport FRAIS_PREVUS_TRANSPORT Grade GRADE Heure départ HEURE_DEPART Heure retour HEURE_RETOUR Id autorisation ID_AUTORISATION Id frais ID_FRAIS Id identité ID_IDENTITE Id lieu ID_LIEU Id période ID_PERIODE Id tanche ID_TANCHE Id type ID_TYPE Lib type indemnité LIB_TYPE_INDEMNITE Libellé compte LIBELLE_COMPTE Libellé moyen LIBELLE_MOYEN Montant MONTANT Montant indemnité MONTANT_INDEMNITE Motif MOTIF N° compte N__COMPTE N° tel N__TEL Nb de km NB_DE_KM nb repas offerts NB_REPAS_OFFERTS Nb repas pris dans restau NB_REPAS_PRIS_DANS_RESTAU_ADMINISTRATI administratif F No compte NO_COMPTE No de police NO_DE_POLICE No immatriculation NO_IMMATRICULATION No ordre NO_ORDRE
ENITA de Bordeaux - corrigé exos merise.doc - 13/10/2004 10:01
Type de données A25 N A50 N N A50 A50 A5 A5 A5 TXT A5 D D N D D D D N N N A50 N N N N N N N N A5 A50 A50 A50 N N A100 A22 A15 N N N
Exercices MERISE
N A50 A8 N
Page 27
Nom Nom lieu Prénom Prix remboursé au km Residence familiale Tranche CV Type lieu Ville
NOM NOM_LIEU PRENOM PRIX_REMBOURSE_AU_KM RESIDENCE_FAMILIALE TRANCHE_CV TYPE_LIEU VILLE
A50 A50 A50 N A50 A50 A40 A50
Modèle conceptuel des données Concerner
ex : repas, nuitée ou journalière
1,1 0,n
TYPE INDEMNITE
AUTORISATION
1,1
Code Agent < Nom Prénom Grade Residence familiale CP Ville N° tel
Posséder 0,n
Correspondre
VEHICULE No immatriculation < No de police Date autorisation
ORDRE MISSION
0,n IDENTITE BANCAIRE
0,n
Id identité Caisse Centre CCP Banque Agence N° compte
PUISSANCE
1,n
1,n
Type lieu