Update database normalization course

This commit is contained in:
Yorick Barbanneau 2022-03-21 22:53:13 +01:00
parent 28d234f2d4
commit 1d8d4be844

View file

@ -162,9 +162,36 @@ leurs propriétés, on peut directement obtenir une décomposition sans perte
#### Principe
1. Calculer la couverture minimale
2. Condenser les dépendances fonctionnelles ayant la même partie gauche. Chaque
relation obtenue est alors en 3FN
3. Détecter les équivalences entre dependances fonctionnelles (regroupement des
relations) et vérifier que la clé \\(R\\) est présente dans un des schemas
de relation obtenu.
Soit \\(R(A,B,C,D,E) \text{ et } f\{AB \to C; C \to B; A \to D\} \\)
**Calculer la couverture minimale** :
\\( F_{\text{min}} \\{ AB \to C; C \to A; A \to D \\} \\)
**Condenser les dépendances fonctionnelles** ayant la même partie gauche :
\\( R_{1}(\underline{A,B},C); R_{2}(\underline{C},B); R_{3}(\underline{A},D) \\)
Chaque dépendance fonctionnelle est une relation possible dont la partie gauche
est clé.
**Détecter les équivalences entre dependances fonctionnelles** par le
regroupement des relations et vérifier que la clé \\(R\\) est présente dans un
des schemas de relation obtenu.
\\( R_{1}(\underline{A,B},C); R_{2}(\underline{C},B); R_{3}(\underline{A},D) \\)
Ici \\(R_{1}\\) et \\(R_{2}\\) se réferencent mutuellement, nous pouvons les
regrouper en \\(R_{\text{1+2}}(\underline{A,B},C)\\).
La relation \\(R\\) a donc deux clés candidates: \\(\\{A,B,E\\}\\) et
\\(\\{A,C,E\\}\\). Pour ne pas perdre \\(E\\), il faut ajouter une relation
composée de la clé \\(R\\), par exemple \\(R_{4}(\underline{A,B,E})\\).
**La décomposition est donc** :
\\(R_{1+2}(\underline{A,B},C)\\)
\\(R_{3}(\underline{A},D)\\)
\\(R_{4}(\underline{A,B,E})\\)