====== TD 7 : Dépendances fonctionnelles ====== ==== Exercice 1 ==== Soient: * L'ensemble d'attributs {A, B, C, D, E} * Les dépendances fonctionnelles : * A --> B, C * D --> E * C, D --> A 1. Montrer, à l'aide des axiomes d'Armstrong, que {A, D} est une clé de ce schéma. 2. Montrer que {C, D} est également une clé. ==== Exercice 2 ==== Exprimez les descriptions suivantes sous forme d'ensembles d'attributs et de dépendances fonctionnelles: * Chaque véhicule possède un conducteur principal * Au sein d'une entreprise, chaque département est dirigé par un employé (mais tous les employés ne dirigent pas un département!) * Dans une bibliothèque, un livre peut être emprunté par plusieurs abonnés (mais pas au même moment!) ==== Exercice 3 ==== Soient les attributs {num_ligne, arrêt, voie, ville, heure_départ, heure_passage} pour la modélisation d’un réseau de bus. 1. Exprimez les dépendances fonctionnelles suivantes : * Certaines voies possèdent plusieurs arrêts (mais la réciproque n’est pas vraie). * Pour une ligne données, l'heure de départ définit l'heure de passage à un arrêt. * Un bus ne peut se trouver à deux arrêts différents au même horaire de passage. 2. Définissez une clé pour cet ensemble d'attributs ==== Exercice 4 ==== Soient les attributs {id_enseignant, num_salle, date, heure, id_élève, code_UE}. 1. Exprimer les dépendances fonctionnelles suivantes : * Un enseignant ne peut enseigner dans deux salles différentes pour le même créneau horaire (date et heure) * Un élève ne peut se trouver dans deux salles différentes pour le même créneau horaire (date et heure) * Les séances sont assurées par un enseignant unique et se rattachent à une UE unique. 2. Donnez une clé possible pour ce schéma. ==== Exercice 5 ==== Soit le schéma relationnel suivant : **Billet**(num_train, type_train, num_voiture, num_place, date, id_passager, nom_passager, prénom_passager, date_naissance, gare_montée, horaire_montée, gare_descente, horaire_descente, classe, tarif) NB : * Sur un réseau ferroviaire, un numéro de train désigne une ligne directe depuis la gare de départ jusqu'au terminus, avec des passages en gare à horaires fixes. * Le schéma décrit un billet direct (sans correspondance) 1. Exprimer les dépendances fonctionnelles suivantes : * Le numéro de train définit le type * Le numéro de train et le numéro de voiture détermine la classe * Le tarif dépend du type de train, de la classe et du trajet * Un train ne peut passer dans une même gare à deux horaires différents. * Il existe un identifiant unique pour chaque passager * Pour ne date donnée, deux passagers ne peuvent être en même temps à la même place (mais plusieurs passagers peuvent se succéder sur un même siège) 2. Trouvez d'autres dépendances fonctionnelles non exprimées ci-dessus 3. Lequel de ces ensembles d’attributs est une clé du schéma? * num_train * num_train, num_voiture, num_place * num_train, num_voiture, num_place, date * num_train, num_voiture, num_place, date, gare_montée 4. Trouver une autre clé qui utilise l'attribut id_passager ==== Exercice 6 ==== Soit le schéma relationnel suivant : **Billet**(code_vol, type_vol, num_place, date_départ, num_appareil, id_passager, nom_passager, prénom_passager, date_naissance, aéroport_départ, horaire_départ, aéroport_arrivée, horaire_arrivée, durée, classe, tarif) Servant à décrire des vols affrétés par une compagnie aérienne . Lequel de ces ensembles d’attributs //n'est pas// une clé du schéma? * code_vol, date_départ, horaire_départ, num_place * num_appareil, aéroport_départ, date_départ, num_place * code_vol, date_départ, id_passager * code_vol, date_départ, num_place ==== Exercice 7 ==== Modifier le schéma relationnel suivant pour qu’il respecte la deuxième forme normale : **Appel**(__numéro_appelant, date, heure__, numéro_destinataire, durée, nom_appelant, prénom_appelant, date_naissance, forfait) ==== Exercice 8 ==== Soit l’ensemble d’attributs décrivant la commande d’un produit en une certaine quantité par un certain client: E = {produit, quantité, prix_unitaire, montant, nom_client, prénom_client, téléphone, voie, ville, code_postal, pays, date, trimestre, mois, année} Remarques: - on suppose qu'il n'y a pas d'homonymes - le téléphone est un téléphone fixe pouvant servir à plusieurs personnes - Essayez de trouver des dépendances fonctionnelles au sein de cet ensemble d’attributs. - A partir des dépendances définies précédemment, trouvez une clé du schéma de table “Commande” composé de l’ensemble de ces attributs : * **Commande**(produit, quantité, prix_unitaire, montant, nom_client, prénom_client, téléphone, voie, ville, code_postal, pays, date, trimestre, mois, année) - Cette table obéit-elle à la 2ème Forme Normale? à la 3ème Forme Normale? Indiquez les modifications à apporter pour obtenir un schéma normalisé.