48
Chapitre 4 • Concepts des bases de données
Ces définitions et observations nous permettent de répondre à trois questions importantes.
1. Comment décomposer une table ?
La décomposition d’une table doit se faire selon une dépendance fonctionnelle, à
défaut de quoi l’opération entraîne une perte de données, en ce sens qu’une
recomposition (qu’on appellera plus tard jointure) ne restitue pas les données
initiales. Elle doit obéir au cannevas de la figure 3.14, qui montre que la table R
peut être remplacée par la table S, qui regroupe le déterminant et le déterminé de
la dépendance, et d’une variante réduite de la table R, de laquelle le déterminé a
été retiré. Les colonnes A, B et C sont en toute généralité des groupes de colonnes.
Figure 3.14 - Décomposition sans pertes selon une dépendance fonctionnelle
2. Qu’est-ce qu’une table normalisée ?
Une table est normalisée si tout déterminant y est un identifiant. A l’inverse, si
une table est le siège d’une dépendance fonctionnelle anormale, c’est-à-dire dont
le déterminant n’est pas un identifiant, alors cette table n’est pas normalisée, et est
susceptible de contenir des données redondantes.
3. Comment traiter une table non normalisée ?
Toute table qui est le siège d’une dépendance anormale doit être décomposée
selon cette dépendance, selon le cannevas de la figure 3.14. Si cette table contient
plusieurs dépendances anormales, on la décomposera itérativement en traitant, à
chaque stade, celles dont le déterminé n’est pas un déterminant.
On observera que la décomposition de la table LIVRE en EXEMPLAIRE et
OUVRAGE obéit à ces principes (ISBN est un déterminant mais n’est pas un identifiant). Examinons le traitement de deux exemples supplémentaires.
Les achats
Chaque ligne (c, p, x) de la table ACHAT ci-dessous représente le fait que le client
c achète le produit p au prix x. On sait que le prix d’un produit est constant, quel
que soit le client qui l’achète.
B → C
⇒
PRODUIT → PRIX
⇒
Précédent

- 48/436

Suivant