NFE113 Exercices de révisions : ENONCE
Exercice 1 :
Soit la relation R1(A, B, C, D) avec les dépendances fonctionnelles suivantes : A ->
D et B -> C. R1 est-elle en 3ème forme normale?
Soit la relation R2(A, B, C, D) avec la dépendance fonctionnelle AB ->C.
R2 est-elle en 3ème forme normale?
Soit la relation R3(A, B, C, D) avec la dépendance fonctionnelle C -> D. R3 est-elle en 3ème forme normale?
Exercice 2 :
On considère le schéma relationnel suivant, modélisant une base de recettes de cuisine
● TypesIngrédients(numérotype, descriptiontype) contenant par exemple le tuple (2, viande)
● Ingrédients(numingrédient, nomingrédient, numtypeingrédient, numtypemesure) contenant par exemple le tuple (3, bœuf, 2, 5) le numéro de type de mesure décrit l’unité de mesure utilisée pour cet ingrédient.
● Mesures(numtypemesure, descriptionmesure) contenant par exemple le tuple (5, gramme)
● IngrédientsRecette(numrecette, numordreingrédient, numingrédient, quantité) contenant par exemple le tuple (12, 1, 3, 500)
● Recettes(numrecette, nomrecette, numtyperecette, duréepréparation,
niveaudifficulté) contenant par exemple le tuple (12, bœuf Strogonoff, 1, 45, 1)
● TypeRecettes(numtyperecette, descriptiontyperecette) contenant par exemple (1, plat principal)
Pour chacune des requêtes ci-dessous, donnez une écriture SQL :
● La quantité de sucre incorporée dans la recette 'Gateau tout chocolat'.
● Liste des ingrédients (nom) en ordre alphabétique qui ne sont utilisés dans aucune recette.
● Le nombre de recettes par type de recettes
● Les recettes qui ont la même durée que la recette de l'aligot Expliquez ce que présente chacune des requêtes suivantes : 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')
NFE113 Exercices de révisions : ENONCE
2. SELECT COUNT(*)
FROM Recettes
WHERE numTypeRecette = ( SELECT numTypeRecette FROM TypeRecettes
WHERE descriptionTypeRecette= "plat principal")
Pour chacune des requêtes ci-dessous, donnez l’arbre algébrique optimisé :
● Liste des recettes contenant du bœuf et d'une durée inférieure à 30'
● Les ingrédients utilisés dans la recette du clafoutis aux cerises Exercice 3 :
On souhaite répertorier les conférences internationales d’informatique. Chaque conférence est annuelle. Chaque année, elle se déroule à un endroit différent. Par exemple, la conférence VLDB (Very Large Data Bases) a eu lieu à Stockholm en 1986 (VLDB86) et à Brighton en 1995 (VLDB95). Chaque conférencier est un chercheur rattaché à une institution universitaire. Il présente, lors d’une conférence, une communication définie par un numéro et un titre. Une communication ne peut être
présentée qu’une seule fois. L’ensemble des données à représenter est listé ci-dessous : - numéro d’identification du chercheur,
- nom du chercheur, - prénom du chercheur, - institution du chercheur,
- numéro d’identification de la conférence, - lieu d’organisation de la conférence, - année,
- numéro d’identification de la communication, - titre de la communication.
On suppose de plus que chaque communication peut être présentée par un ou plusieurs chercheurs et qu’un chercheur peut présenter plusieurs communications par conférence. Bien entendu, il peut y avoir deux conférences dans la même ville certaines années. Et une même conférence peut être organisée plusieurs fois dans la même ville.
a) Faire le graphe minimal des dépendances fonctionnelles. Justifier vos hypothèses.
b) En déduire le schéma relationnel.
c) Décomposer jusqu’à obtenir un schéma relationnel en troisième forme normale.
NFE113 Exercices de révisions : ENONCE
Exercice 4 :
Nous sommes sur le centre de production d’un constructeur automobile. Deux chaînes effectuent le montage. Les véhicules sont ensuite transportés chez les distributeurs par un service livraison/logistique. Les employés sont répartis dans des bâtiments parfois éloignées les uns des autres. On veut gérer, à l’aide d’une base de données relationnelle, l’accès aux différents parkings. On définit, pour chaque parking, les bâtiments qui sont accessibles à partir de ce parking. L’attribution des places de parking se fera en fonction du lieu d’affectation de l’employé. L’attribution dépend également de la marque du véhicule : certains parkings sont interdits aux véhicules de marques concurrentes.
Les employés peuvent obtenir des autorisations exceptionnelles de parking, par exemple s’ils participent à une réunion dans un autre bâtiment que leur bâtiment habituel. On ne souhaite pas gérer le calendrier des réunions avec les salles correspondantes. La pertinence d’une demande exceptionnelle reste donc en dehors du système informatisé. Pour suivre la bonne affectation des autorisations exceptionnelles, on enregistre l’utilisation réelle de la place attribuée.
On suppose que :
- chaque bâtiment est proche d’au moins un parking, - pour toute marque, il y a au moins un parking accessible,
- un employé n’est basé à un moment donné que dans un seul bâtiment, - un seul propriétaire du véhicule est déclaré,
- un employé ne peut pas déclarer plusieurs véhicules,
- le système propose une ou plusieurs affectations, s’appuyant sur les règles en vigueur,
- toute affectation doit être confirmée manuellement.
a) Proposez une modélisation conceptuelle entité-association de cette base en précisant vos hypothèses complémentaires éventuelles.
b) En expliquant la méthode utilisée, traduisez ce schéma en un ensemble de tables relationnelles.