Corrigé du Concours du ministère de l'industrie, du commerce et des nouvelles technologies

print this page
send email
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