NFE113 Exercices de révisions : CORRIGE
Exercice 1 :
R1 n'est pas en 3 NF car l'attribut C dépend d'une partie de la clé (B) et D attribut dépend aussi d'une partie de la clé (A).
R2 est en 3NF car il n’existe pas de DF d’une partie de clé vers un non clé : la seule clé A est élémentaire Et il n’existe pas de DF entre non-clés.
R3 n'est pas en 3NF l'attribut D dépend d'une partie de la clé (C).
Exercice 2 :Pour chacune des requêtes ci-dessous, donnez une écriture SQL :
● La quantité de sucre incorporée dans la recette 'Gateau tout chocolat'.
SELECT CONCAT(ir.quantité, ' ', m.descriptionMesure)
FROM Recettes r, IngrédientsRecette ir, Ingrédient i, Mesures m WHERE m.numTypeMesure = i.NumTypeMesure
AND i.numIngrédients = ir.numIngrédient AND ir.numRecette = r.numRecette AND r.nom LIKE 'Gateau tout chocolat' AND i.nomIngrédient LIKE 'Sucre'
● Liste des ingrédients (nom) en ordre alphabétique qui ne sont utilisés dans aucune recette.
SELECT i.nomIngrédient
FROM Ingrédient i LEFT JOIN IngrédientsRecette ir ON i.numIngrédient = ir.numIngrédient
WHERE ir.numRecette IS NULL ORDER BY i.nomIngrédient
● Le nombre de recettes par type de recettes.
SELECT tr.descriptionRecette, COUNT(r.numRecette) FROM TypeRecette tr, Recettes r
WHERE tr.numTypeRecette = r.numTypeRecette GROUP BY tr.descriptionRecette
● Les recettes qui ont la même durée que la recette de l'aligot SELECT r.nomRecette
FROM Recettes r
WHERE r.duréePreparation = ( SELECT r.duréePreparation
FROM Recettes r
WHERE r.nomRecette LIKE 'Aligot')
Expliquez ce que présente chacune des requêtes suivantes : 1. La (ou les) recettes qui contiennent le plus de 'sucre'
NFE113 Exercices de révisions : CORRIGE 2. Nombre de recettes de plat principal
Pour chacune des requêtes ci-dessous, donnez l’arbre algébrique optimisé:
● Liste des recettes (nom) contenant du bœuf et d'une durée inférieure à 30'
Recettes
● Les ingrédients (nom) utilisés dans la recette du 'clafoutis aux cerises' σ duréePréparation < 30
IngrédientsRecette
X
σ Recettes.numRecette = IngrédientsRecette.numRecette
X
σ nom = 'Boeuf '
Ingrédients
π Recettes.nom
σ
Ingrédients.nom
Ingrédients
X
σ
Recettes.numRecette = IngrédientsRecette.numRecette
X
σ Ingredients.numIngrédient = IngrédientsRecette.numIngrédient
IngrédientsRecette
π
Recettes
nom='Clafoutis aux cerises'
NFE113 Exercices de révisions : CORRIGE Exercice 3 :
R(numChercheur, numConference, numComm, titre, nomChercheur, prenomChercheur, instChercheur, lieuConf, année, titre)
Cette relation est en 1NF car tous ces attributs sont atomiques et non multivalués.
Le passage en 2NF supprime les dépendances fonctionnels entre des attributs et une partie de la clé.
Chercheur(numChercheur, nomChercheur, prenomChercheur, instChercheur) Conference(numConference, lieuConf, année)
Communication(numComm, numChercheur, numConference, titre)
Ces relations sont également en 3NF car aucun des attributs ne dépend d'autre attributs non-clé.
instChercheur prenomChercheur
année numConference
nomChercheur
titre
numChercheur
lieuConf numComm
NFE113 Exercices de révisions : CORRIGE Exercice 4 :
Hypothèses complémentaires :
● chaque véhicule a une et une seule autorisation habituelle de parking
● un parking peut être proche de plusieurs bâtiments
EMPLOYE(matricule, nom, prénom, n°bâtiment, n°autorhabit, n°immat, codmarq) BATIMENT(numbâtiment, nombâtiment)
PARKING (numéroparking, nomparking, capacité) MARQUE (codmarq, intitulé)
AUTORHABIT(n°autorhabit, datdéb, n°parking)
AUTOREXCEPT(n°autorexcept, datautor, n°immat, n°parking) INTERDICTION (n°parking, codmarq)
PROXIMITE (n°parking, n°bâtiment) EMPLOYE
matricule Nom Prénom
…
VEHICULE N°immat
…
AUTORISATION HABITUELLE
BATIMENT Numéro nom
possède
Accordée à
affecté
Est interdit à 1,1
1,N
1,N 1,N
1,N
1,1
1,1
PARKING Numéro Nom capacité Est proche de
1,N 1,N
Numéro Datdéb datfin
dans 1,N 1,1
AUTORISATION EXCEPTIONNELLE
Numéro Datautor Utilisé (0/N)
MARQUE codmarq intitulé 1,1
1,1
Accordée à 1,1
appartient 1,N 1,1
dans
1,N 1,1