Vous êtes sur la page 1sur 9

Institut Supérieur des Études Technologiques de Radès

Département Technologies de l'informatique


Épreuve : Bases de Données

Date : Janvier 2021


Enseignantes : N. Abidi, H.BenAyed, L.Gatri, J. Dhiab

Classes :L2 : DSI


RSI et SEM
Documents :Non autorisés Durée :1h30mn Nb pages :9

Nom:.......................................... Prénom:........................................ classe:............................

.Numéro carte étudiant:...................................................

Exercice1 :

soit la relation suivante:


Réparation(NumOuvrier,NomOuvrier,NumRéparation,NumMachine,TempsPassé,
Dateréparation,NomMachine,NumAtelier,NomAtelier ) possédant les dépendances fonctionnelles
suivantes :
1. NumOuvrier -------->NomOuvrier
2. NumRéparation -------->Dateréparation
3. NumOuvrier,NumRéparation -------->TempsPassé
4. NumRéparation -------->NumMachine
5. NumMachine -------->NomMachine
6. NumMachine -------->NomAtelier
7. NumAtelier -------->NomAtelier
8. NumMachine -------->NumAtelier

Répondre aux questions suivantes, en justifiant vos réponses.

1. Quelle est le but de la normalisation ?

elimination des redondances et amelioration des traitements


_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________

1/9
Ne Rien Ecrire Ici

2. Identifier les redondances éventuelles dans les dépendances fonctionnelles de la relation


Réparation.
Ligne 6: NumMachine ------> NomAtelier car en peut la connaitre avec 7 et 8
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
3. Trouver la ou les clés possible(s) de Réparation.
la clé:
________________________________________________________________________
NumOuvrier, NumRéparation
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
4. Donner la forme normale de cette Relation.
Cette Relation est en 1FN car NomOuvrier dépends d'une seule partie de la clé
________________________________________________________________________
A (NumOuvrier,NumRéparation, tempsPassé)
________________________________________________________________________
B (NumOuvrier, NomOuvrier)
________________________________________________________________________
C (NumRéparation, NumMachine, DateRéparation, NumMachine, NumAtelier, NomMachine,
____________________________________________
NomAtelier )

5. Proposer une décomposition de Réparation en troisième forme normale

2/9
Ne Rien Ecrire Ici

A (NumOuvrier,NumRéparation, tempsPassé)
________________________________________________________________________
B (NumOuvrier, NomOuvrier)
________________________________________________________________________
C (NumRéparation, NumMachine, DateRéparation)
________________________________________________________________________
D (NumMachine, NumAtelier, NomMachine)
________________________________________________________________________
E (NumAtelier, NomAtelier)
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
6. Les relations obtenues sont-elles en BCNF ? Expliquer votre réponse.
Oui, car aucun attribut non clé détérmine un attribut clé
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________

3/9
Ne Rien Ecrire Ici

Exercice 2 :

Afin d’assurer la qualité des produits attendues par ses Clients, l’entreprise Cimenterie de Carthage
cherche à optimiser la gestion des pannes pouvant survenir dans les infrastructures de production
nécessaires à la fabrication du Ciment. Voici un extrait de la base de données :

TECHNICIEN (id_Tech, nom, prénom, spécialité)

STATION (id_Stat, nom, Position, coordLat, coordLong,phase)

MACHINE (id_Mach, état, dateMiseEnService, dateDernièreRévision, #id_Stat)

TYPEINCIDENT (id_Type, description, TempsRéparationPrévu)

INCIDENT (id_Ind, remarques, date, dateCloture, #id_Mach,#id_Type)

INTERVENTION (id_Interv, DateDébut, DateFin, #id_Ind, #id_Tech)

Remarque: l'attribut "TempsRéparationPrévu" indique le temps de réparation prévu pour un type


d'incident. Il est exprimé en minute.

Rédigez les requêtes SQL qui permettent de :

1. Afficher la liste par ordre alphabétique décroissant des noms et prénoms des techniciens ayant
réalisé une intervention sur la Machine identifiée par Ber001.
select nom, prenom
________________________________________________________________________
from Technicien join intervention using (id_tech)
________________________________________________________________________
join incident using (id_ind)
________________________________________________________________________
join machine using (id_mach)
________________________________________________________________________
where id_mach = "Ber001"
________________________________________________________________________
order by nom desc, prenom desc;
______________________________

4/9
Ne Rien Ecrire Ici

2. Afficher la liste des machines ayant connue un incident de type « sur-chauffage» pendant
l’année 2019.
select id_mach
___________________________________________________________________________
from incident join typeincident using (id_type)
___________________________________________________________________________
where description = "sur-chauffage" AND date between (01-01-2019 AND 31-12-2019);
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
3. Afficher les noms des techniciens qui ont la même spécialité que le technicien T020 ou qui ont
réparé la machine identifiée par Ace002.
select nom from technicien
___________________________________________________________________________
where specialite = (select specialite from technicien where id_tech = "T020");
___________________________________________________________________________
UNION
___________________________________________________________________________
select nom
___________________________________________________________________________
from technicien join intervention using (id_tech)
___________________________________________________________________________
join incident using (id_ind)
___________________________________________________________________________
where id_mach = "Ace002";
___________________________________________________________________________
4. Afficher le nombre d’incidents non clôturés.
___________________________________________________________________________
select count(*)

___________________________________________________________________________
from incident

___________________________________________________________________________
where dateCloture is NULL;

___________________________________________

5. Afficher la liste des noms des stations ayant eu plus de dix incidents.

5/9
Ne Rien Ecrire Ici

select nom
___________________________________________________________________________
from station join machine using (id_stat)
___________________________________________________________________________
join incident using (id_mach)
___________________________________________________________________________
group by nom
___________________________________________________________________________
having count(id_ind) > 10;
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

6. Afficher l’état des machines qui n’ont pas eu d’incidents.


___________________________________________________________________________
select etat

___________________________________________________________________________
from machine

where id_mach not in (select id_mach


___________________________________________________________________________
from incident )
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

7. Afficher le nom du technicien qui a effectué le plus d’interventions.


select nom
___________________________________________________________________________
from technicien join intervention using (id_tech)
___________________________________________________________________________
group by id_tech
___________________________________________________________________________
having count(id_interv) = select max(count(id-interv)) from intervention
___________________________________________

8. Afficher pour chaque Station,le temps de réparation prévu moyen ainsi que le temps de
réparation prévu le plus bas.

6/9
Ne Rien Ecrire Ici

select avg(typeincident.TempsRéparationPrévu), min(typeincident.TempsRéparationPrévu)


___________________________________________________________________________
from station join machine using (id_stat)
___________________________________________________________________________
join incident using (id_mach)
___________________________________________________________________________
join typeincident using (id_type)
___________________________________________________________________________
group by id_stat;
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

9. Afficher les noms de techniciens qui sont intervenus dans tous les incidents.
___________________________________________________________________________
select nom

___________________________________________________________________________
from technicien join intervention using (id_tech)

___________________________________________________________________________
where id_tech in (select id_tech from intervention

___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
10. Afficher les numéros des machines ainsi que leur numéro de station qui ont eu un temps de
réparation supérieur à la moyenne des temps de réparation.
________________________________________________________________________
________________________________________________________________________
___________________________________________________
11. Afficher les numéros et les états des machines qui ont eu des incidents après leur dernière
date de révision.
___________________________________________________________________________
___________________________________________________________________________
7/9
Ne Rien Ecrire Ici

___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

12. Supprimer toutes les interventions effectuées par le technicien ayant réalisé l’intervention la
plus récente sur la machine Ber002.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

13. Augmenter de 30 minutes le temps de réparation prévu des incidentssurvenus sur les machines
de la station nommée ‘JbelElOust’.
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

8/9
Ne Rien Ecrire Ici

___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

14. Ajouter une colonne date de naissance à la table Technicien. Affecter au technicien identifié par
T01 la date de naissance suivante « 22/10/ 1990 ».
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________
___________________________________________________________________________

9/9

Vous aimerez peut-être aussi