PARTIE I : Analyse et
Modélisation (MERISE/UML)
Exercice N° 1 : Société de
travaux Publics.
1. Tableau des cardinalités et des
règles de gestion associées :
Association
|
Entités
|
Cardinalité
|
Règles de Gestion
|
Diriger
|
Chantier
|
(1, 1)
|
Un chantier est dirigé par
un et un seul employé.
|
Employé
|
(0, 1)
|
Un employé dirige au plus
un chantier.
|
|
Affecter
|
Chantier
|
(0, n)
|
Aucun ou plusieurs
employés sont affectés à un chantier.
|
Employé
|
(0, 1)
|
Un employé est affecté au
maximum à un chantier.
|
|
Placer
|
Chantier
|
(0, n)
|
Dans un chantier est placé
aucun ou plusieurs équipements.
|
Equipement
|
(0, 1)
|
Un équipement est placé au
plus dans un chantier.
|
|
Date
(Début)
|
(0, n)
|
Un équipement est placé
dans un chantier pour aucunes ou plusieurs dates de début.
|
|
Date
(Fin)
|
(0, n)
|
Un équipement est placé
dans un chantier pour aucunes ou
plusieurs dates de Fin.
|
2. le MCD modifié :
3. Le modèle proposé ne permet pas de
connaître l’historique des affectations des employés aux différents
chantiers car les date d’affectation ne sont pas présentes sur le MCD.
4. Solution proposée
Contrainte: Un employé qui dirige un chantier est nécessairement affecté au
même chantier
Cette contrainte peut être représentée grâce à la notion
d’héritage définie dans le Merise 2 :
5. Diagramme de classes
correspondant au MCD de l’annexe A :
6. le
MLD relationnel correspondant au MCD de l’annexe A :
Exercice N° 2 : Location de
matériel de construction.
Le modèle
des données Entité-Association (Merise)
Le modèle
des données Diagramme des Classes (UML).
PARTIE II : BASES DE DONNÉES
1. le schéma de la base de :
2. Requêtes en langage algébrique:
a.
Résultat=PROJECT(Article, référenceArticle,
caractéristiqueArticle, qtéTotaleDisponnible)
b.
Résultat=PROJECT(Article, numéroMleVendeur,
nomPrénomVendeur, #codePointVente )
c. A=JOIN(Commande,Vendeur)
B=RESTRICT(A, codeVendeur=1240)
C=RESTRICT(B,
dateCommande=> ‘01/05/2008’ AND dateCommande=< ‘31/05/2008’ )
D=INTERSECT(B,C)
Résultat=PROJECT(D, numéroCommande)
d. A=JOIN(Ville,
Entrêpot)
B=PROJECT(A, nomVille)
C=PROJECT(Ville, nomVille)
Résultat=MINUS(C,
B)
e. A=JOIN(Ville, PointVente)
B=PROJECT(A,
nomVille)
C=JOIN(B, Entrepôt)
D=PROJECT(C, nomVille)
Résultat=MINUS(A, C)
Requêtes en langage
SQL :
a. SELECT référenceArticle,
caractéristiqueArticle, qtéTotaleDisponnible FROM Article ;
b. SELECT numéroMleVendeur,
nomPrénomVendeur, #codePointVente FROM Vendeur ;
c. SELECT numéroCommande FROM Commande, Vendeur WHERE numéroMleVendeur = # numéroMleVendeur
AND numéroMleVendeur= 1240 AND dateCommande BETWEEN ‘01/05/2008’ AND ‘31/05/2008’ ;
d. SELECT nomVille FROM Ville, Entepôt WHERE codeVille !=
#codeVille ;
e. SELECT nomVille FROM Ville, Entepôt, PointVente WHERE codeVille != ##codeVille AND codeVille = #codeVille ;
PARTIE III : RESEAUX
0 commentaires:
Enregistrer un commentaire