Bases de données et programmation – Exercices UML et relationnel (1)

Page 1 sur 4Lecteur de document UniversityLib

Bases de données et programmation – Exercices UML et relationnel (1)

Database, UML, Programming · course

Département Informatique et Statistique, Faculté de SEG, Université Lumière Lyon 2

M2 Informatique spécialité IDS – Année 2009-2010

Bases de données et programmation – Exercices UML et relationnel (1)

J. Darmont (http://eric.univ-lyon2.fr/~jdarmont/), 13/10/09

trajet. Cette dernière dépend des conditions atmosphériques, donc de la DATE.

Un certain nombre de PERSONNELS est affecté à chaque DEPART. On distingue les personnels non-

navigants des personnels navigants. Parmi ces derniers, on distingue le(s) pilote(s). Un membre du per-

sonnel est caractérisé par son NOM, son ADRESSE, son NO-TELEPHONE.

Exercice 1

Une entreprise de fabrication et de distribution de matériels possède une usine et plusieurs lieux de

stockage/expédition.

Un produit est caractérisé par un numéro (NOP), un libellé (LIB), un prix unitaire (PU).

Chaque produit peut être stocké dans un ou plusieurs dépôts. Un dépôt est caractérisé par un numéro

(NOD). Dans chaque dépôt on connaît la quantité en stock de chaque produit (QTS) et la quantité dis-

ponible (QTD) (la différence représente la quantité réservée pour des commandes déjà validées mais

non livrées).

Un client est déterminé par son numéro (NOCLI), son nom (NOM), son adresse (ADR), le total de son

chiffre d'affaire (CA), le taux de réduction (RED). Chaque client est livré à partir d'un dépôt privilégié,

ou à partir d'un dépôt de secours en cas de défaillance du premier.

À un client peuvent être associées une ou plusieurs commandes, chacune étant caractérisée par un nu-

méro (NOCOM) et une date (DAC). Une ligne comporte un code produit, une quantité commandée

(QTC), un délai de livraison (DEL) et un code livraison (CL) indiquant si la livraison est intervenue.

À chaque commande peuvent être associées une ou plusieurs factures, une facture étant élaborée dès

qu'une livraison est intervenue. Une facture est caractérisée par un numéro de facture (NOF), une date

(DAP), un montant (MOF). Une facture peut concerner plusieurs produits. Chaque ligne comprend la

quantité facturée (QTF) et le montant correspondant (MOP).

Proposer un schéma conceptuel des données à l’aide d’un diagramme de classes UML.

Exercice 2

Une compagnie aérienne veut mettre en œuvre une base de données pour gérer ses différents vols.

Un VOL est un parcours aérien caractérisé par un NUMERO, une VILLE-DEPART, une VILLE-

ARRIVEE, une HEURE-DEPART, une HEURE-ARRIVEE, une DISTANCE, une FREQUENCE.

1) On désire utiliser cette base pour produire (entre autres) les listes suivantes :

• passagers enregistrés pour un départ,

• personnels affectés à un départ pour chacune des trois catégories,

• départs programmés pour un vol donné,

• départs assignés à un avion donné pour la semaine à venir,

• caractéristiques du vol correspondant à un départ.

Proposer un diagramme de classes UML pour cette base (tous les éléments figurant en majuscules dans

l'énoncé doivent être pris en compte), en exploitant au maximum la relation d’héritage.

2) Un VOL peut en fait être constitué de plusieurs tronçons. Par ailleurs on souhaite pouvoir établir

pour chaque VILLE les vols au départ et les vols à l'arrivée.

Suggérer une amélioration du modèle précédent pour prendre en compte ces deux aspects.

Exercice 3

Il s'agit d'établir le schéma conceptuel d'une base de données pour la gestion des formations d'un insti-

tut privé. Un cours est caractérisé par un numéro de cours (NOCOURS), un libellé (LIBELLE), une

durée en heures (DUREE) et un type (TYPE). Un cours peut faire l'objet dans l'année de plusieurs ses-

sions identiques. Une session est caractérisée par un numéro (NOSES), une date de début (DATE) et

un prix (PRIX). Une session est le plus souvent assurée par plusieurs animateurs et est placée sous la

responsabilité d'un animateur principal. Un animateur peut intervenir dans plusieurs sessions au cours

de l'année. On désire mémoriser le nombre d'heures (NBH) effectué par un animateur pour chaque ses-

sion. Un animateur est caractérisé par un numéro (NOANI), un nom (NOMA) et une adresse (ADRA).

Chaque session est suivie par un certain nombre de participants. Un participant est une personne indé-

pendante ou un employé d'une entreprise cliente. Un participant est caractérisé par un numéro (NO-

PAR), un nom (NOMP) et une adresse (ADRP). Dans le cas d’un employé, on enregistre le nom (NO-

MEN) et l’adresse de l’entreprise (ADREN). On désire pouvoir gérer d’une manière séparée (pour la

facturation notamment) les personnes indépendantes d’une part, et les employés d’autre part. Si néces-

saire, on fera les hypothèses sémantiques complémentaires qui pourraient s'imposer.

Établir un schéma conceptuel (diagramme de classes UML) pour cette base de données.

Lorsqu'un VOL est programmé pour une DATE déterminée il constitue un DEPART. Un VOL n’est

programmé qu'une seule fois dans une journée à l'heure prévue.

Exercice 4

Un certain nombre de PASSAGERS peut être enregistré pour un DEPART. Un PASSAGER est carac-

térisé par son NOM, son ADRESSE et son NO-TELEPHONE.

Un AVION est affecté à chaque DEPART. Un AVION est caractérisé par un NUMERO, un TYPE,

Publicité

une CAPACITE. Un AVION utilise une certaine QUANTITE DE CARBURANT pour accomplir le

Traduire en schémas relationnels les trois schémas UML conçus lors des exercices précédents (compa-

gnie aérienne, entreprise de fabrication/distribution, institut de formation).

Exercices UML et relationnel (1)

1/2

Exercices UML et relationnel (1)

2/2

Correction Exercice 1

Correction Exercice 2.1

V O L

NUMER O

vill e-depa rt

vill e-arrivee

he ure-depart

he ure-arrivee

distance

fre quence

1

1

0..*

0..*

DEPART

NUMERO

date

0..*

0..*

1..*

1..*

0..*

0..*

DEPART-AVION

quantite-carburant

0..*

0..*

PASSAGER

1

1

AVION

NUMERO

type

capacite

PERSONNE

NUMERO

nom

adresse

no-telephone

{Inclusif}

NON-NAVIGANT

{Exclusif, Co mplète}

PERSON NEL

1..*

1..*

PILOTE

NAVIGANT

NB : Les identifiants sont indiqués en majuscules.

Exercices UML et relationnel (1)

3/2

Exercices UML et relationnel (1)

4/2

Correction Exercice 2.2

Correction Exercice 3

VOL-TRONCON

heure-depart

heure-arrivee

Publicité

V O L

NUMER O

freq uence 1

1

1..*

1..*

DEPART-AVION

quantite-carburan t

0..*

0..*

DEPART

NUMER O

da te

0 ..*

0 ..*

1..*

1..*

0..*

0..*

0..*

0..*

PASSAGER

1

1

AVION

NUMERO

type

capacite

PERSONN E

NUMER O

nom

adres s e

no-telephone

{Inclus if}

1..*

1..*

TRONCON

NUMERO

ville-depart

ville-arrivee

dis tance

NON-NAVIGANT

{Exclus if, Com plète}

PERSONNEL

1..*

1..*

PILOTE

NAVIGANT

NB : Les identifiants sont indiqués en majuscules.

1

1

COUR S

NOCOURS

libelle

duree

type

EMPLOYE

no men

ad ren

1..*

1..*

1..*

1..*

SESSION

Publicité

NOSES

date

pri x

0..*

0..*

Principal

1

1

1..*

1..*

PARTICIPANT

ANIMATEUR

1..*

1..*

1..*

1..*

ANIME

nbh

{Exclusi f}

PERSONNE

NOP

nom

adr

NB : Les identifiants sont indiqués en majuscules.

Exercices UML et relationnel (1)

5/2

Exercices UML et relationnel (1)

6/2

Correction Exercice 4

PRODUIT (NOP, LIB, PU)

DEPOT (NOD)

CLIENT (NOCLI, NOM, ADR, CA, RED, NOD_PRIV#, NOD_SEC#)

COMMANDE (NOCOM, DAC, NOCLI#)

FACTURE (NOF, DAP, MOP, NOCOM#)

STOCKAGE (NOP#, NOD#, QTS, QTD)

LIGNE_COMMANDE (NOP#, NOCOM#, QTC, DEL, CL)

LIGNE_FACTURE (NOP#, NOF#, QTF, MOF)

VOL (NUMVOL, FREQUENCE)

TRONCON (NUMTRONC, VILLEDEP, VILLEARR, DISTANCE)

AVION (NUMAV, TYPE, CAPACITE)

DEPART (NUMDEP, DTE, NUMVOL#, NUMAV#, QTECARBU)

PERSONNE (NUMPERS, ADRESSE, TEL, CAT1) CAT1 ˛

PASSAGER (NUMPERS_PAS#)

PERSONNEL (NUMPERS_PER#, CAT2) CAT2 ˛

NAVIGANT (NUMPERS_NAV#)

NON_NAV (NUMPERS_NON#)

PILOTE (NUMPERS_PIL#)

DECOUPER (NUMVOL#, NUMTRONC#, HEUREDEP, HEUREARR)

RESERVER (NUMDEP#, NUMPERS_PAS#)

AFFECTER (NUMDEP#, NUMPERS_PER#)

{PASSAGER, PERSONNEL}

{NAVIGANT, NON_NAV}

SESSION (NOSES, DATE, PRIX, NOCOURS#, NOP_ANIPRINC#)

COURS (NOCOURS, LIBELLE, DUREE, TYPE)

PERSONNE (NOP, NOM, ADR, CAT) CAT ˛

ANIMATEUR (NOP_ANI#)

PARTICIPANT (NOP_PAR#)

EMPLOYE (NOP_EMP#, NOMEN, ADREN)

PARTICIPER (NOP_PAR#, NOSES#)

ANIMER (NOP_ANI#, NOSES#, NBH)

{ANIMATEUR, PARTICIPANT}

Exercices UML et relationnel (1)

7/2