Vous êtes sur la page 1sur 5

Universit es Bordeaux 1 Master Informatique UE INF 305 Bases de Donn ees Examen du vendredi 13 mai, 8h3010h documents non

on autoris es
Exercice A Reprise sur panne Expliquez en moins dune page les principes de la m ethode de reprise sur panne appel ee undo loggin. tat coh On utilisera un exemple avec deux m emoires A et B dont la somme vaut 100 dans tout e erent de ` partir de l la base de donn ees, avec une transaction A := A 5; B := B + 5. a etat A = B = 50. Expliquer ensuite le fonctionnement des checkpoints. PONSE : RE Voir le cours.

Exercice B Optimisation de requ etes Pour chacune des requ etes suivantes concernant les relations R(A,B,C,D) et T (C,D,E ) dites si elle vous semble optimale et pourquoi. Si la requ ete ne vous semble pas optimale, en donner une formulation meilleure. A=2 A R PONSE : RE A A=2 R = {2}ou0 / C A=2,E =3 (R T ) PONSE : RE C ((C,D A=2 R) (C,D E =3 T ))

Pour les requ etes des deux exercices suivants, on consid` ere la base avions utilis ee en TD:
PILOTE (NUMPIL, NOMPIL, ADR, SAL) AVION (NUMAV, NOMAV, CAPACITE, LOC) VOL (NUMVOL, NUMPIL, NUMAV, VILLE_DEP, VILLE_ARR, H_DEP, H_ARR) NUMPIL: cl e de PILOTE, nombre entier NOMPIL: nom du pilote, cha^ ne de caract` eres ADR: ville de la r esidence du pilote, cha^ ne de caract` eres SAL: salaire du pilote, nombre entier NUMAV: cl e de AVION, nombre entier CAPACITE: nombre de places dun avion, nombre entier LOC: ville de la eroport dattache de lavion, cha^ ne de caract` eres NUMVOL: cl e de VOL, nombre entier VILLE_DEP: ville de d epart du vol, cha^ ne de caract` eres VILLE_ARR: ville darriv ee du vol, cha^ ne de caract` eres H_DEP: heure de d epart du vol, nombre entier entre 0 et 23 H_ARR: heure darriv ee du vol, nombre entier entre 0 et 23

Exercice C Requ etes en SQL Exprimer les requ etes suivantes en SQL: (C.i) Quels sont les pilotes ne conduisant que des avions de plus de 300 places? SELECT NUMPIL, NOMPIL FROM PILOTE WHERE NUMPIL NOT IN (SELECT NUMPIL FROM VOL, AVION WHERE VOL.NUMAV=AVION.NUMAV AND CAP<300) 1

` (C.ii) Quels sont les pilotes bordelais ne conduisant que des avions arrivant au moins une fois a Bordeaux? SELECT NUMPIL, NOMPIL FROM PILOTE WHERE NUMPIL NOT IN (SELECT NUMPIL FROM VOL WHERE NUMAV NOT IN (SELECT NUMAV FROM VOL WHERE VILLE_ARR=Bordeaux)) (C.iii) Quelle est la LOC des avions qui font un trajet mais pas le retour? PONSE : RE R= SELECT LOC FROM AVION WHERE NUMAV IN (SELECT NUMAV FROM T AS (SELECT NUMAV, V_DEP, V_ARR FROM VOL) EXCEPT (SELECT NUMAV, V_ARR AS V_DEP, V_DEP AS V_ARR)) T est lensemble des (NUMAV,V_DEP,V_ARR) de VOL tel quon ne trouve pas (NUMAV,V_ARR,V_DEP) dans VOL (C.iv) Quelle est la LOC des avions qui ne font que des trajets avec le retour? SELECT LOC FROM AVION WHERE NUMAV NOT IN R (C.v) Quels est le salaire maximum dun pilote nic ois? SELECT MAX(SAL) FROM PILOTE WHERE ADR=Nice (C.vi) Quel est le salaire maximum dun pilote et quels sont les pilotes qui le perc oivent? SELECT NUMPIL, NOMPIL FROM PILOTE WHERE SAL >= ALL (SELECT SAL FROM PILOTE)

Exercice D Requ etes en Datalog Exprimer les requ etes suivantes en datalog, sans tenir compte des d elais dattente entre correspondances. ventuellement nul, (D.i) Quels sont les villes accessibles depuis Bordeaux, avec un certain nombre, e de correspondances? ACC(v):-VOL(_,_,_,Bordeaux,v,_,_) ACC(v):-ACC(w) AND VOL(_,_,_,w,v,_,_) (D.ii) Quels sont les villes accessibles depuis Bordeaux avec moins de 2 de correspondances? ACC(v):-VOL(_,_,_,Bordeaux,v,_,_) ACC(v):-VOL(_,_,_,Bordeaux,w,_,_) AND VOL(_,_,_,w,v,_,_) (D.iii) Quels sont les villes accessibles depuis Bordeaux sans jamais utiliser un Tupolev, avec un ventuellement nul, de correspondances? certain nombre, e ACC_SSTUPO(v):-VOL(_,_,a,Bordeaux,v,_,_) AND AVION (a,n,_,_) AND NOT n=Tupolev ACC_SSTUPO(v):-ACC_SSTUPO(w) AND VOL(_,_,a,w,v,_,_) AND AVION (a,n,_) AND NOT n=Tupolev (D.iv) Quels sont les villes accessibles depuis Bordeaux en utilisant au moins une fois un Boeing ventuellement nul, de correspondances? avec un certain nombre, e AEROPORT(x):-VOL(_,_,_,x,_,_,_). AEROPORT(x):-VOL(_,_,_,_,x,_,_). DE_A(x,x):-AEROPORT(x). DE_A(x,y):-VOL(_,_,_,x,u,_,_) AND DE_A(_,_,_,u,y,_,_). AV_BOEING(x,y):-DE_A(x,u) AND VOL(a,_,_,u,v,_,_) AND AVION(a,Boeing,_,_) AND DE_A(v,y).

ventuellement nul, (D.v) Quels sont les villes accessibles depuis Bordeaux avec un certain nombre, e de correspondances, en nutilisant que des vols au d epart de la localit e de lavion? ACC_LOC(v):-VOL(a,_,_,Bordeaux,v,_,_) AND AVION(a,_,_,Bordeaux). ACC_LOC(v):-ACC_LOC(w) AND VOL(a,_,_,w,v,_,_) AND AVION (a,_,_,w). (D.vi) Parmi les requ etes pr ec edentes, lesquelles sont formulables en SQL? Pourquoi? PONSE : La deuxi` RE eme uniquement car elle ne contient pas de r ecurrence tandis que ` une construction r toute sles autres font appel a ecursive.

Exercice E Conception de sch emas relationnels Soit AB, ACD, BCD une d ecomposition de ABCD muni des d ependances fonctionnelles A C D C BD A. (E.i) La d ecomposition est-elle sans perte dinformation? Justiez votre r eponse. Si votre r eponse est n egative, vous donnerez une relation sur ABCD qui soit un contre-exemple.

PONSE : Non, cette d RE ecomposition ne pr eserve pas les d ependances fonctionnelles. Soit R la table ci-dessous: A B C D a b c y a z c d u b c d R satisfait les DF, ses projections sur AB, ACD et BCD sont respectivement: A B a b a z u b D y d d D y d d (a,b,c,d ) R

RAB

RACD

A C a c a c u c B C b c z c b c RBCD

RBCD

RAB

RACD

(E.ii) La d ecomposition propos ee pr eserve-t-elle les d ependances fonctionnelles? PONSE : BD A est une d RE ependance perdue par cette d ecomposition. ` la cl On applique lalgorithme qui v erie si A appartient a oture de BD par les d ependances projet ees G, sans calcul explicites des d ependances de G. Z0 = BD Z1 = BD ((BD AB)+/F AB) = BD Z2 = BD ((BD ACD)+/F ACD) = BD Z3 = BD ((BD BCD)+/F BCD) = BD (ABD BCD) = BD Apr` es un e it eration, Z0 na pas chang e, donc BD+/G = BD qui ne contient pas A la d ecomposition ne pr eserve pas les d ependances.

Exercice F Conception de sch emas relationnels Soit AB C, A D, BD C un ensemble de d ependances fonctionnelles sur un ensemble dattributs ABCD. (F.i) Donner une d ecomposition en 3NF de ABCD qui ne comporte que deux sch emas. Les d ependances fonctionnelles sont elles pr eserv ees? PONSE : Il faut chercher une couverture minimale qui ne comporte que deux d RE ependances, et prendre leurs ensembles attributs pour tables. De A D on obtient AB BD et avec BD C on obtient AB C. AB C est donc une cons equence de A D et BD C. A D et BD C forment une couverture minimale. On ne peut supprimer une des deux ` gauche est n d ependances sans la perdre et chaque attribut a ecessaire. Une d ecomposition en 3NF est AD et BDC. 4

(F.ii) Quelles sont les d ependances fonctionnelles projet ees sur chacun des deux sch emas? PONSE : Calculons les d RE ependances non triviales. Sur AD on a A D mais pas D A Sur BDC on a BD C, mais B+ = B, C+ = C, D+ = D, BC+ = BC, CD+ = CD, il ny a donc pas dautres d ependance non triviale. (F.iii) Votre exemple est-il sans perte dinformation? Pourquoi? Sinon, comment faudrait-il modier votre d ecomposition pour quelle soit sans perte dinformation. PONSE : Pour quune telle d RE ecomposition soit sans perte dinformation il faut que lune des tables contiennent une clef. BDC nest pas une clef, AD non plus, il faut rajouter un sch ema qui soit une clef, comme ABD.

Exercice G Conception de sch emas relationnels Soit un sch ema relationnel ABCD avec les d ependances fonctionnelles A B,

B C,

D B.

(G.i) Est-il en BCNF? Pourquoi? PONSE : Lunique clef minimale est AD. Le membre gauche de chacune des DF nest RE pas une clef. Le sch ema nest pas en BCNF. (G.ii) Si on d ecompose ce sch ema en ACD et BD quelles sont les d ependances projet ees? ` R E PONSE : Ne mentionnons pas les d ependances triviales o` u un attribut gure et a ` droite. gauche et a Sur ACD on trouve A C et D C ainsi que leur cons equence AD C. Sur BD on trouve D B. (G.iii) Ces sch emas sont-ils BCNF? Sinon terminer la d ecomposition. PONSE : BD est en BCNF (2 attributs). RE ACD nest pas en BCNF puisque la clef est AD. On d ecompose suivant AC et AD, qui est en BCNF. (G.iv) Le r esultat est-il sans perte dinformation? Oui (en utilisant les d ependances projet ees sur ACD e ten appliquant lalgorithme usuel, on a: AC AD A C D a c u a x := c d

(G.v) Pr eserve-t-il les d ependances? PONSE : RE A+/AC,DC,DB ` Non, A B est perdue d` es la premi` ere d ecomposition. B nappartient pas a = AC.

Exercice H Conception de sch emas relationnels Dans le pire des cas, combien d etapes sont n ecessaires pour v erier la pr eservation dun ensemble de n d ependances sur p attributs. Un ordre de grandeur sufra, mais on justiera sa r eponse. PONSE : RE (personne na trait e cet exercice, il est gard e en r eserve)