Merise Exercices MCD Corriges [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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