Exercice Corrigé Dépendances fonctionnelles et normalisation

Soit un schéma de bases de données contenant les relation suivantes :

Bureau(NumBureau, NumTelephone, Taille) avec
FBureau    = { NumBureau → NumTelephone, T aille; NumT elephone → NumBureau; }
Occupant(NumBureau, PersonneID) avec FOccupant    = { N umBureau → PersonneID }
Materiel(NumBureau, NumPC) avec FMateriel = { NumP C → NumBureau }

1. Les contraintes ci-dessous sont-elles vériées par ce schéma de bases de données? Si la réponse est positive, expliquez pourquoi. Si la réponse est négative, indiquez quelle(s) dépendance(s) fonctionnelle(s) il faut ajouter/supprimer ou modier pour que la contrainte soit vériée.

(a) "Un bureau peut contenir plusieurs postes téléphoniques."
(b) "Il y a une et une seule personne par bureau."
(c) "Un bureau contient un seul ordinateur."
2. A partir des familles de dépendances fonctionnelles initiales données dans l'énoncé, indiquez quelles sont les clés minimales possibles de chaque relation.

----------------------------------------------------------------------------------------------------
Correction
----------------------------------------------------------------------------------------------------

1.    Vérification des contraintes exprimées par des dépendances fonctionnelles :

(a)    "Un bureau peut contenir plusieurs postes téléphoniques"

Cette contrainte n'est pas vérifiée car    FBureau    contient la dépendance fonctionnelle NumBureau → NumT elephone donc à un bureau est associé un et un seul numéro de téléphone. Pour que la contrainte soit vériée, il faudrait supprimer cette dépendances fonctionnelle.

(b)    "Il y a une et une seule personne par Bureau."

Cette contrainte est vérifiée car FOccupant contient la dépendance fonctionnelle NumBureau → PersonneID, donc à un numéro de bureau est associée une et une seule personne.

(c)    "Un bureau contient un seul ordinateur."

Cette contrainte n'est pas vérifiée car il y a juste l'information qu'un ordinateur est dans un seul bureau (NumP C → NumBureau) mais pas l'inverse. Pour que la contrainte soit vérifiée, il faudrait ajouter la dépendance fonctionnelle NumBureau → NumPC.

2.    Détermination des clés minimales des relations :

FBureau    = { NumBureau → NumT elephone, Taille; NumTelephone → NumBureau; }
La relation Bureau a donc deux clés minimales possibles :    NumBureau et NumTelephone.

En effet, à partir de l'attribut NumBureau il est possible de déduire les deux autres attributs de la relation (par la première dépendance fonctionnelle). Par l'attribut NumTelephone, il est possible de déduire NumBureau (2ème dépendance fonctionnelle) et donc l'attribut Taille (par la première dépendance fonctionnelle). On a donc :

[NumBureau]+= {NumBureau, NumTelephone, Taille} car NumBureau → NumTelephone, Taille.
et [NumTelephone]+    = {NumTelephone, NumBureau, Taille}, car NumTelephone → NumBureau
et donc par transitivité avec NumBureau → Taille, on obtient NumTelephone → Taille.


FOccupant    = { NumBureau → PersonneID }
La relation Occupant a donc une seule clé minimale possible :    NumBureau.


FMateriel    = { NumPC → NumBureau }
La relation Materiel a donc une seule clé minimale possible :    NumPC.
                                

Article plus récent Article plus ancien

Leave a Reply