Corrigé du Contrôle des
Connaissances en Bases de Données
1e Partie
Q1) Le " facteur de blocage " est la mesure du nombre de tuples par pages physique. Avantages de " bloquer " au maximum : L/E le maximum de tuples à la fois. Inconvénients : risque de débordement en cas de modification.
Q2) Un " bon " schéma relationnel contient des tables normalisées (3NF ou BCNF) et des contraintes d'intégrité - au moins celles définissant clés primaires et clés étrangères.
Q3) Les différentes raisons
pour lesquelles un SGBD peut déclencher l’annulation – " abort "
- d’une transaction en cours sont : des pannes du système nécessitant
des reprises, des impossibilités rencontrées par l'ordonnanceur,
des détections d'action ou de transaction illicite ou incohérente.
Q4) Quels musiciens font partie de plus d’un groupe ?
ProjM (MG1 Join (MG1.M=MG2.M and MG1.G < MG2.G) MG2)Q5) Quels musiciens pratiquent la batterie et le Saxo ?
soit
select distinct M from MG MG1, MG MG2
where MG1.M=MG2.M and MG1.G < MG2.G
ou bien, purement SQL,
select M from MG group by M having count(G) > 1
ProjM (restrI='batterie'(IM1) Join IM1.M=IM2.M restrI='saxo'(IM2))Q6) Quels musiciens ne pratiquent que la clarinette ?
soit
select distinct M from IM IM1, IM IM2
where IM1.M=IM2.M and IM1.I = 'batterie' and IM2.I = 'saxo'
ou bien
ProjM (restrI='batterie'(IM1)) Intersection ProjM (restrI='saxo'(IM2))
soit
select M from IM where I = 'batterie' intersects select M from IM where I = 'saxo'
ou bien
select M from IM where M in (select M from IM where I = 'batterie')
and M in (select M from IM where I = 'saxo')
ProjM (restrI='clarinette'(IM1)) Difference ProjM (restrI<>'clarinette'(IM2))Q7) Quels musiciens pratiquent quels instruments que ne présentent aucuns des groupes auxquels ils participent ?
soit
select M from IM where I = 'clarinette' minus select M from IM where I <> 'clarinette'
ou bien
select M from IM IM1 where I = 'clarinette' and not exists
(select * from IM IM2 where I <> 'clarinette'
and IM1.M = IM2.M)
ou bien
select M from IM where I = 'clarinette' and M not in
(select M from IM where <>'clarinette')
ou bien, purement SQL,
select M from IM where I = 'clarinette' group by M having count(distinct I) = 1
ProjM,IIM Difference ProjM,I(MG JoinMG.G=GI.G GI)Q8) Ecrire en SQL la définition de la vue des seules distributions – " castings " existantes ou ayant existé.
soit
select M,I from IM minus select MG.M,GI.I from MG, GI where MG.G=GI.G
ou bien
select M,I from IM where not exists
(select * from MG, GI where MG.G=GI.G
and MG.M=IM.M and GI.I=IM.I)
ou bien
select M,I from IM where I not in
(select I from MG, GI where MG.G=GI.G
and MG.M=IM.M)
create view GMI asQ9). Quels sont les groupes présentant plus de 12 instruments différents et lesquels?
select GI.G, MG.M, IM.I from GI, MG, IM
where GI.G=MG.G and MG.M=IM.M and IM.I=GI.I
select G,I from GMI where G in
(select G from GMI group by G having count(distinct I) > 12)
Graphe des DF:
en trait continu, les DF de l'énoncé;
en trait pointillé, les DF de la fermeture transitive (non triviales)
Q10) La relation universelle RU(P, J, H, V, A, T) n'est qu'en 1NF
Q11a) Schéma de la BD sous la forme d'une collection de relations 3NF
Q13).Combien d’escales, y compris aéroports de départ et d’arrivée, a le vol V=’TG931’ ?
select count(P) from Escales where V=’TG931’
Q14) Afficher le tableau des arrivées à l’aéroport
P=’Bangkok’ le jour J=’2000/03/13’ ?
select H , V from Escales ARR where P =’Bangkok’ and J=’2000/03/13’ and exists
(select * from Escales DEP where DEP.VOL = ARR.VOL
and datetime(DEP.J,DEP.H) < datetime (ARR.J,ARR.H))N.B. afficher aussi les provenances serait un peu plus laborieux!
Evaluation - A (très facile), B, C, D , E (extrêmement difficile) - de cet examen :
DUREE : 90 mn (= un tour de terre en satellite à basse altitude !)
TOUS DOCUMENTS AUTORISES