dimanche 10 avril 2011

TP Analyse : Dépendances fonctionnelles et normalisation avec Corrigé

Soit R une relation dont le schéma est le suivant :

R( UtilisateurID, Nom, Prénom, AdresseEmail, Login, Passwd, ServeurMail).

1. Exprimer, à l'aide de dépendances fonctionnelles, les contraintes suivantes que doivent vérifier les instances de la relation R :

(a) "On peut déduire le nom et le prénom d'un utilisateur à partir de son identificateur."

(b) "Un utilisateur (identifié par son identificateur) possède un seul login et un seul password par serveur de mails."

(c) "Une adresse email est associée à un et un seul identificateur d'utilisateur."
Attention : un utilisateur peut avoir plusieurs adresses de mails.


(d) "Une adresse email est associée à un et un seul serveur de mails."


2. Indiquer, à partir de la famille de dépendances fonctionnelles, issue de la question 1, quelles sont les clés mimimales de R.


3. Indiquer, à partir de la famille de dépendances fonctionnelles, issue de la question 1, en quelle forme normale est la relation R.

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

1.    Expression de contraintes par des dépendances fonctionnelles :
 
(a)    "On peut déduire le nom et le prénom d'un utilisateur à partir de son identificateur."
 
Cette contrainte s'exprime par la dépendance fonctionnelle :

UtilisateurID → Nom, Prénom
En effet, à un identificateur d'utilisateur est associé un et un seul nom et un et un seul prénom.

(b)    "Un utilisateur (identifié par son identificateur) possède un seul login et un seul password par serveur de mails."

 
Cette contrainte s'exprime par la dépendance fonctionnelle :

UtilisateurID, ServeurMail → Login, Passwd
En effet pour un couple (identificateur d'utilisateur, serveur de mail) est associé un et un seul login et un et un seul mot de passe.

(c)    "Une adresse email est associée à un et un seul
identificateur d'utilisateur."

Cette contrainte s'exprime par la dépendance fonctionnelle :

AdresseEmail → UtilisateurID

En effet, à une adresse mail est associée un et un seul identificateur d'utilisateur.

(d)    "Une adresse email est associée à un et un seul serveur de mails."

 
Cette contrainte s'exprime par la dépendance fonctionnelle :

AdresseEmail → ServeurMail
En effet, à une adresse mail est associée un et un seul serveur de mails.

2.    Identication des clés minimales de la relation R


La famille de dépendances fonctionnelles associées à R est :

F = { UtilisateurID −→ Nom, Prénom;    UtilisateurID, ServeurMail −→ Login, Passwd;
AdresseEmail −→ UtilisateurID;    AdresseEmail −→ ServeurMail }


L'attribut AdresseEmail ne peut être déduit d'aucun autre attribut, il doit donc appartenir à tous les clés minimales possibles de la relation. A partir de l'attribut AdresseEmail on peut déduire identificateur de l'Utilisateur est donc, par transitivité, le nom et le prénom de l'utilisateur :  AdresseEmail → UtilisateurID → Nom, Prénom. A partir de ce même attribut, on peut en déduire aussi le nom du serveur de mail et donc avec l'identificateur d'utilisateur, le login et le mot de passe de l'utilisateur :

AdresseEmail → UtilisateurID, ServeurMail → Login, Passwd

D'où :    [AdresseEmail]+= { AdresseEmail, UtilisateurID, Nom, Prénom, ServeurMail, Login, Passwd    } = R

La relation R a donc une seule clé minimale possible :    AdresseEmail.

3.    Déduction de la forme normale du schéma de la relation R
Les deux dernières dépendances fonctionnelles sont de la forme clé primaire → autre attribut, et vérient donc les propriétés de la forme normale BCNF. En revanche, les deux premières dépendances fonctionnelles sont transitives puisqu'elles ne sont composées que d'attributs n'appartenant pas à une clé. Par conséquent, le schéma de la relation R  est en deuxième forme normale.

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP