Vous êtes sur la page 1sur 3

Faculté des sciences Sétif le 16/11/2020

Département d’informatique
Première année Master (MTC)
Bases de données avancées(BDA)

Examen de rattrapage BDA (durée 1h 30 mn)

Exercice 1 : (PL/SQL) 12pts

Soit le schéma suivant :

AVION (AvNum, AvNom, Capacite, Localisation)


PILOTE (PINum, PINom, PIPrenom, Ville, Salaire)
VOL (VolNum, PINum#, AvNum#, VilleDep, VilleArr, HeureDep, HeureArr)

Les performances des avions de marque Airbus évoluent, aussi souhaite-t-on faire
des mises à jour de la table VOL. Le temps de vol des avions de type A300 (Avions
N°1 et 4) doivent être réduit de 10 % et ceux des avions de type A310 (Avions N°2 et
8) de 15 %. Il s'agit de définir un programme PL/SQL permettant ces modifications.

Dans un bloc PL/SQL anonyme, déclarer un curseur permettant de lire les données
suivantes :
numéro de vol, numéro d'avion, heure de départ et heure d'arrivée des vols pour
lesquels l'avion utilisé est le N° 1, 2, 4 ou 8. Pour chaque vol lu par le curseur,
calculer le temps de vol, le réduire dans la proportion voulue selon l'avion utilisé,
puis mettre à jour l'attribut HeureArr de ce vol dans la table VOL.

Exercice 2: :(sérialisation) 8 pts

Cette exécution est-elle sérialisable ? Si oui donnez l’exécution sérielle équivalente.

T1 : A+1-> A

T2 : A*2->A

T1 : B+1->B

T2 : B*2->B

Temps

Bon Courage !
Corrigé type de l’examen de rattrapage BDA (Master TC)

Exercice 1 : (12 pts)

DECLARE

CURSOR avamodif IS

SELECT volnum, avnum, heuredep, heurearr

FROM vol WHERE avnum IN (1,2,4,8);

volmod avamodi%ROWTYPE;

tvol REAL;

BEGIN

FOR volmod IN avamodif LOOP

tvol := volmod.heurearr - volmod.heuredep ;

IF volmod.avnum IN (1,4) THEN

tvol := tvol*0.9 ;

ELSE

tvol := tvol * 0.85 ;

END IF;

UPDATE vol SET heurearr = volmod.heuredep + tvol

WHERE volnum = volmod.volnum ;

END LOOP;

END;

Exercice 2 : 8 pts

(1)T1: A+1-> A
(2)T2: A*2->A (2) et (3) sont permutables
(3)T1: B+1->B car pas sur le même granule 2pts
(4)T2: B*2->B
On peut transformer en:
 T1: A+1->A
 T1: B+1->B Cette exécution est serialisable 2pts
 T2: A*2->A
 T2: B*2->B

Vous aimerez peut-être aussi