Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
Soit R1 (A, B, C, D, E, F ) une relation avec l’ensemble de dépendances suivant :
{A, B → C, A, B → D, A, B → E, A, B → F, B → C, D → E, D → F }
3. On décompose la relation R1 en R11 et R12 : R11 (A, B, D, E, F ) et R12 (B, C). Quelles sont
les formes normales des relations R11 et R12 ?
Exercice 2
On considère la relation R(A, B, C, D, E, F ) sur laquelle sont définies les dépendances fonctionnelles
suivantes :
A, B → C, D → C, D → E, C, E → F, E → A
Compléter les cases vides du tableau suivant :
A B C D E F
1 110 54
x 2 j 100 n 52
w 1 i 110 m
2 100 52
Exercice 3
Soit la table suivante de la relation Personne :
Personne Numero Nom Prenom Naissance
1 Bonicoli Pierre-Louis 1964
2 Grossetete Sandrine 1968
3 Renaud Stephane 1980
4 Rum Alexandra 1978
Que valent les expressions suivantes ?
1
Exercice 4
On considère les relations suivantes :
1. Afficher les personnes qui possèdent une voiture mais pas de moto.
Exercice 5
On suppose qu’une bibliothèque gère une base de données dont le schéma est le suivant (les lés
primaires des relations sont soulignées) :
Exprimer, lorsque cela est possible, les requêtes suivantes en algèbre relationnelle et en SQL.
1. Quelles sont les personnes ayant emprunté le livre "Recueil Examens BD" ?
3. Quelles sont les personnes ayant emprunté tous les livres (empruntés au moins une fois) ?
4. Quels sont les livres ayant été empruntés par tout le monde (i.e. tous les emprunteurs) ?
5. Quelles sont les personnes ayant toujours rendu en retard les livres qu’elles ont empruntés ?
Exercice 6
On considère le schéma relationnel suivant, modélisant une base de recettes de cuisine
2
Pour chacune des requêtes ci-dessous, donnez une écriture SQL :
2. Liste des ingrédients (nom) en ordre alphabétique qui ne sont utilisés dans aucune recette.
1. SELECT r.nom
FROM Recettes r, IngrédientsRecette ir, Ingrédients i
WHERE r.numRecette = ir.numRecette
AND ir.numIngrédient = i.numIngrédients
AND i.nom = ’sucre’
AND ir.quantité = (SELECT MAX(ir.quantité)
FROM Ingrédients i, IngrédientsRecette ir
WHERE i.numIngrédient = ir.numIngrédient
AND i.nom = ’sucre’)
2. SELECT COUNT(*)
FROM Recettes
WHERE numTypeRecette = ( SELECT numTypeRecette
FROM TypeRecettes
WHERE descriptionTypeRecette= "plat principal")