Dans cette activité, nous vous proposons une série de questions. Le questionnaire vous permettra de consolider vos connaissances et de revenir, au besoin, sur certains passages du texte de référence que vous avez étudié au cours de l’activité précédente.
Répondez aux questions et analysez attentivement vos réponses en vous demandant : « Quels sont les arguments qui font que cette réponse pourrait être la bonne ? » et « Quels sont les arguments qui font que cette réponse pourrait être une mauvaise réponse ? »
Vérifiez votre réponse en cliquant sur le bouton Solution. Pour chaque question, la réponse et une explication sont fournies.
Activité d’auto-évaluation
Rappel : La projection d’un enregistrement t sur les attributs $A$ est noté $t[A]$. Une dépendance fonctionnelle $A\to B$ est satisfaite si et seulement si n’importe paire d’enregistrements $t$ et $t’$, nous avons que $t[A]=t’[A]$ implique $t[B]=t’[B]$.
Pour vous préparer au travail noté, faites l’activité qui suit.
Q1. Identifiez les dépendances fonctionnelles sous-entendue par ce schéma :
Professeur (identifiant du professeur, nom, adresse, salaire,bâtiment où est le bureau)
Cours (sigle du cours, identifiant du professeur, numéro de la salle de cours, début du cours, fin du cours)
Salle de cours (numéro de la salle de cours, capacité du local, bâtiment)
identifiant du professeur → nom, adresse, salaire, bâtiment où est le bureau
sigle du cours, identifiant du professeur → numéro de la salle de cours, début du cours, fin du cours
numéro de la salle de cours→ capacité du local, bâtiment
Q2. Si A→ (C,D,E) et que vous avez une relation portant sur les attributs A,C,D,E, que pouvez-vous dire au sujet de l’attribut A ?
Il s’agit d’une clé.
Q3. Si vous avez une relation (nom, prénom, email, téléphone) et que nom, prénom est une clef, que pouvez-vous dire au sujet des dépendances fonctionnelles ?
Nous avons (nom,prénom)→ (email, téléphone)
Q4. Soient les tuples suivants :
nom
pays
Joe
É.-U.
Jean
France
Peter
Chine
Joe
Australie
Que pouvez-vous dire au sujet de la dépendance fonctionnelle
nom →pays ?
Elle n’est pas satisfaite car Joe est parfois aux É-U. et parfois en Australie. Une dépendance fonctionnelle nom→pays implique que pour chaque nom, il y a un seul pays.
Par contre, la dépendance fonctionnelle pays→nom est satisfaite. En effet, il n’est pas possible de trouver deux enregistrements distincts qui ont la même valeur sur l’attribut pays et dans un tel cas, la dépendance est automatiquement satisfaite.
Q5. Est-ce que (A,B,C) → (D,E), et (A,B)→(A,D) sont des dépendances fonctionnelles élémentaires ?
Non, parce que :
1) On peut simplifier (A,B)→(A,D) en écrivant (A,B)→D
2) (A,B,C) → (D,E) porte sur deux attributs (D,E), on doit le réécrire comme (A,B,C)→D et (A,B,C)→E et on se rend compte que (A,B,C)→D ne peut pas être élémentaire car (A,B)→D.
Au total, on obtient alors les dépendances fonctionnelles suivantes : (A,B)→D et (A,B,C)→E. On ne peut pas savoir si elles sont élémentaires sans connaître mieux le problème (par ex., il est possible que B→E). Mais dans la mesure où l’on suppose que l’on connaît toutes les dépendances fonctionnelles, alors (A,B)→D et (A,B,C)→E sont élémentaires.
Q6. Que pouvez-vous dire au sujet des attributs A et B si A→B et B→A ?
Il existe une correspondance une-à-une (une bijection) entre les valeurs de A et les valeurs de B.
Q7. Calculez la fermeture transitive des dépendances fonctionnelles suivantes (A,B)→E, B→E, E→A, E→B, C→D et réécrivez les dépendances fonctionnelles afin qu’elles soient élémentaires.
À partir de B→E, E→A, on obtient B→A par transitivité.
On se rend compte alors que (A,B)→E ne peut pas être élémentaire puisque B→A. En fait, il faut plutôt écrire B→E, qui est déjà une dépendance fonctionnelle.
Au total, on obtient donc B→E, E→A, E→B, B→A, C→D. Le résultat est fermé sous la transitivité (il n’est pas possible de trouver deux dépendances qu’on puisse combiner par transitivité pour en former une nouvelle qui n’est pas dans notre ensemble) et toutes les dépendances sont élémentaires.
Q8. Trouvez une couverture minimale des dépendances fonctionnelles (A,B)→E, B→E, E→A, E→B, C→D.
Le plus simple est de partir des dépendances fonctionnelles calculées à la question précédentes : B→E, E→A, E→B, B→A, C→D.
Il suffit ensuite de vérifier qu’aucune dépendance fonctionnelle ne peut être déduite à partir des autres : si c’est le cas, on les retire.
Prenons B→E, est-ce qu’on peut obtenir ce résultat à partir de E→A, E→B, B→A, C→D ? La réponse est négative.
Prenons E→A, est-ce qu’on peut obtenir ce résultat à partir de B→E, E→B, B→A, C→D ? La réponse est positive. E→B et B→A implique E→A. On retire donc E→A.
Prenons E→B, est-ce qu’on peut obtenir ce résultat à partir de B→E, B→A, C→D ? La réponse est négative.
Prenons B→A, est-ce qu’on peut obtenir ce résultat à partir de B→E, E→B, C→D ? La réponse est négative.
Prenons C→D, est-ce qu’on peut obtenir ce résultat à partir de B→E, E→B, B→A ? La réponse est négative.
Nous avons donc la couverture minimale C→D, B→E, E→B, B→A.
Q9. À partir des dépendances fonctionnelles (A,B)→E, B→E, E→A, E→B,C→D faites une décomposition en 3e forme norme de la relation (A,B,C,D,E,F).
On peut appliquer l’algorithme Figure XVII.31 en page 695 du volume de référence. Partons de la couverture minimale calculée à la question précédente, C→D, B→E, E→B, B→A.
1. On peut débuter l’algorithme avec B→(A,E). On extrait donc une relation (A,E,B). Elle doit être en 3e forme normale.
2. On doit retirer toutes les dépendances fonctionnelles portant sur A, E ou B. Dans ce cas, il ne nous reste plus que C→D.
3. Partant de C→D, on forme la relation (C,D). Elle doit être en 3e forme normale.
4. Il ne nous reste plus que l’attribut F. On forme la relation F. Elle doit être en 3e forme normale.
Au total, on obtient la décomposition en 3e forme normale (A,E,B), (C,D) et F. C’est-à-dire qu’à partir d’une relation, nous en avons fait 3 qui sont maintenant en 3e forme normale.
Q10. Soient les enregistrements suivants :
cours
personne
poterie
Marc
poterie
Carl
yoga
Elise
tennis
Elise
Énumérez les dépendances fonctionnelles satisfaites par ces enregistrements.
cours→cours
personne→personne
(cours,personne)→(cours,personne)
Q11. Mettez les attributs cours et personne de cet exemple en 3e forme normale :
cours
personne
poterie
Marc
poterie
Carl
yoga
Elise
tennis
Elise
Nous n’avons aucune dépendance fonctionnelle élémentaire. Le couverture minimale est donc l’ensemble vide. La relation (cours, personne) est donc déjà en 3e forme normale.