Mars 2000
Dominante Informatique


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.



2e Partie

Q4) Quels musiciens font partie de plus d’un groupe ?

ProjM (MG1 Join (MG1.M=MG2.M and MG1.G < MG2.G) MG2)
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
Q5) Quels musiciens pratiquent la batterie et le Saxo ?
ProjM (restrI='batterie'(IM1) Join IM1.M=IM2.M restrI='saxo'(IM2))
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')
Q6) Quels musiciens ne pratiquent que la clarinette ?
ProjM (restrI='clarinette'(IM1)) Difference  ProjM (restrI<>'clarinette'(IM2))
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
Q7) Quels musiciens pratiquent quels instruments que ne présentent aucuns des groupes auxquels ils participent ?
ProjM,IIM Difference ProjM,I(MG JoinMG.G=GI.G GI)
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)
Q8) Ecrire en SQL la définition de la vue des seules distributions – " castings " existantes ou ayant existé.
create view GMI as
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
Q9). Quels sont les groupes présentant plus de 12 instruments différents  et lesquels?
select G,I from GMI where G in
(select G from GMI group by G having count(distinct I) > 12)


3e Partie

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

Q11b) Schéma de la BD sous la forme d'une collection de relations BCNF Q12) Schéma sous la forme Entité - Association (Entity - Relationship).

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 : D

DUREE : 90 mn (= un tour de terre en satellite à basse altitude !)

TOUS DOCUMENTS AUTORISES


 



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

BON COURAGE !