Universit´e de Sherbrooke D´epartement d’informatique IFT187 : ´El´ements de bases de donn´ees
Examen final Professeur : Marc Frappier Jeudi 15 avril 2004, 9h00 `a 12h00 Notes importantes :
• Documentation permise.
• La correction est, entre autres, bas´ee sur le fait que chacune de vos r´eponses soit claire, pr´ecise, concise et compl`ete.
Pond´eration :
Question Point Question Point
1 25 4 10
2 25 5 20
3 10 6 10
Total 100
1. (25 pt)
Produisez un mod`ele entit´e-relation pour un petit syst`eme de gestion des examens finaux `a l’universit´e. Ce syst`eme doit permettre de traiter les informations suivantes.
• d´epartement : son nom, le nom de son directeur et ses cours;
• cours : son titre, son sigle et ses examens;
• examen : le cours, la session (ex: ”H04”), la date (YYYY-MM-DD), la p´eriode (”AM”,
”PM” ou ”soir”) et ses locaux (ex: ”D4-3021”);
• local : num´ero et nombre de places disponibles;
• programme : titre et ses cours.
On a les contraintes suivantes:
• un cours peut avoir plusieurs examens;
• il y a un seul examen final par session pour un cours;
• un cours appartient `a un seul d´epartement;
• un cours peut apparaˆıtre dans plusieurs programmes.
Solution:
N N
1
N
N M
département nom
directeur
donne cours
programme
examen local
sigle
titre
no nbPlaces
AB comporte
session date période titre
comprend
a lieu
1 M
2. (25 pt) Traduisez le mod`ele entit´e-relation de la figure 1 en un sch´ema relationnel. Utilisez la notation abr´eg´ee suivante pour d´enoter une table : R(A1, . . . , An). D´enotez les cl´es candidates parcc(A1, . . . , Aj) et les cl´es ´etrang`eres parce(A1, . . . , Ai) r´efR(A1, . . . , Ai).
\ E
1A
1R
1E
2E
3E
4R
2R
3A
2A
9A
10A
3A
4A
6A
5A
7A
80..1
0..n
0..n M
N
N 1
Figure 1: Le mod`ele E-R `a traduire en sch´ema relationnel Solution:
• E1(A1, A2),cc(A1)
• E2(A3, A4),cc(A3), cc(A4)
• E3(A5, A6),cc(A5)
• E4(A5, A7, A8), cc(A5, A7),ce(A5) r´ef E3
3. (10 pt) Prouvez ou infirmez les r`egles d’inf´erences suivantes. Pour une preuve, vous pouvez utiliser les r`egles IR1`a IR6; pour infirmer, donnez un contre-exemple.
(a) {AB→C, D→B, E→D} |={AE →C}
Solution:
E→ D D→B IR3
E →B AB→C IR6
AE →C (b) {AB→C, D→B, E→D} |={AE →CF}
Solution: Cette r`egle est fausse; voici un contre-exemple.
A B C D E F a1 b1 c1 d1 e1 f1
a1 b1 c1 d1 e1 f2
4. (10 pt) Soit
F1 ={AB→C, D→B, E→D}
et
F2 ={AE →BCD}.
(a) Est-ce queF1 comprend F2? (b) Est-ce que F2 comprend F1?
(c) Est-ce queF2 etF1 sont ´equivalents?
Justifiez votre r´eponse de mani`ere rigoureuse.
Solution: V´erifions si F1 comprendF2.
AE+ sous F1 = ACBDE⊇BCD Donc, F1 comprend F2. V´erifions siF2 comprend F1.
AB+ sousF2 = AB⊇C D+ sousF2 = D⊇B
E+ sousF2 = E⊇D
Donc, F2 ne comprend pas F1. Donc,F2 etF1 ne sont pas ´equivalents.
5. (20 pt) Normalisez les relations suivantes jusqu’en BCNF. Proc´edez par ´etape : normaliser les d’abord en 2FN, puis en 3FN et finalement en BCNF. Pour chaque ´etape :
• identifiez les cl´es candidates;
• identifiez les d´ependances fonctionnelles qui font qu’une relation ne satisfait pas le niveau de normalisation;
• normalisez la relation.
Voici les relations `a normaliser.
(a) R(ABCDEF) et
F ={ABC →D, B→E, E →F} Solution:
• 2FN : cl´e candidate deR:ABC.
La relation R n’est en 2FN `a cause deB →EF. Normalisation en 2FN : R1(ABCD) et R2(BEF).
• 3FN : cl´e candidate deR1 :ABC,R2 :B.
La relation R1 est en 3FN. La relation R2 n’est pas en 3FN `a cause deE→F. Normalisation en 3FN : R21(BE), R22(EF).
• BCNF : cl´e candidate deR21 :B; cl´e candidate de R22 :E. Les relations sont en BCNF.
(b) R(ABCDE) et
F ={AB→C, D→B, E→D}
Solution:
• 2FN : cl´e candidate deR:AE.
La relation R n’est pas en 2FN `a cause deE →BD. Normalisation en 2FN : R1(EBD) et R2(AEC).
• 3FN : cl´e candidate deR1 :E,R2:AE.
La relation R2 est en 3FN, mais pas la relation R1, `a cause deD→B. Normalisation en 3FN : R11(ED) et R12(DB)
• BCNF : cl´es candidates deR11 :E,R12 :D Les relations sont en BCNF.
(c) R(ABCDE) et
F ={AB→C, AE →DB, E→A}
Solution:
6. (10 pt) Un chef vous demande de l’aider `a mod´eliser les menus de ses restaurants. Il doit tenir compte de plusieurs crit`eres. Un repas est constitu´e d’une entr´ee, d’un plat principal et d’un dessert. Un chef a plusieurs sous-chefs `a ses ordres. Chaque sous-chef est responsable de sp´ecialit´es qui sont d’un type particulier (une entr´ee, un plat principal ou un dessert). Une sp´ecialit´e demande des ingr´edients frais (viandes, volailles, l´egumes, poissons, fruits de mers, etc) et ceux-ci ne sont pas disponibles `a tous les jours de la semaine (par exemple, il n’y a pas de poisson frais le lundi). De plus, chaque sous-chef a son horaire de travail. On ne peut pas servir chaque sp´ecialit´e `a chaque jour; par exemple, le foie gras est `a proscrire le lundi, la client`ele d’affaires ayant l’estomac trop `a plat en d´ebut de semaine. Finalement, dans un repas, on ne peut pas combiner n’importe quelle entr´ee avec n’importe quel plat principal, et n’importe quel dessert. En cons´equence, le chef vous demande de l’aider `a calculer quels sont les menus possibles pour chaque jour de la semaine `a l’aide d’une base de donn´ees. Cette BD doit ˆetre en 5i`eme forme normale. Vous ne pouvez utiliser que les attributs suivants.
• chef
• plat (ex: soupe, foie gras, steak, poutine, petit gˆateau Vachon; un plat est donc un
´el´ement d’un menu)
• ingr´edient (ex: viande, poisson, fines herbes)
• jour (ex: lundi, . . . , dimanche)
• typeSp´ecialit´e (entr´ee, plat principal, dessert) Solution:
• platChef(chef,plat)
• ingr´edientPlat(plat,ingr´edient)
• disponibilit´e(ingredient,jour)
• chefHoraire(chef,jour)
• platJour(plat,jour)
• combinaisonPlat(plat,plat)
• typeSpecialit´e(plat,typeSp´ecialit´e)