Dernière étape de la théorie de la normalisation, il existe des algorithmes qui peuvent, à partir d’une relation (dite universelle) et de ses DF, générer une décomposition qui présente des qualités intéressantes, tant en terme de décomposition qu’en terme de qualité mono-relation. Nous présentons dans cette séquence un de ces algorithmes et revenons sur la coexistence des propriétés qualifiant les décompositions. 1 2 On présente couramment deux algorithmes. Le premier assure une décomposition préservant données et DF, où toutes les relations sont en 3NF. C’est cet algorithme que nous allons détailler. Un autre algorithme est toutefois très utilisé, qui permet de générer une décomposition préservant les données où toutes les relations sont en BCNF, mais cet algorithme ne peut pas garantir la préservation des dépendances fonctionnelles. 3 Le fait que l’algorithme de décomposition en 3NF parte d’une couverture minimale de DF peut avoir une conséquence pour la suite du processus. La décomposition produite dépendra de la CM choisie. 4 On part donc de la relation universelle et d’une couverture minimale de DF 5 Une fois choisie la DF traitée, le processus est identique tout au long du processus. 6 7 8 Et on continue jusqu’à ce qu’il n’y ait plus de DF à traiter. 9 Attention, il faut vérifier que la clé de la relation universelle est bien présente dans l’une des relations. C’est l’étape ultime de l’algorithme et elle est importante. 10 Ici, on réitère le même raisonnement sur une relation universelle qui ne contient plus les dates et prix d’achat… La disparition de ces information supprime une des DF. Toutefois, il est essentiel de noter que la clé de la relation universelle ne change pas, tout simplement parce que naturellement, les voitures et personnes mises en regard dans la relation universelle ne sont pas choisies au hasard mais sont bien les personnes qui possèdent les voiture. Dans ce contexte, l’application de l’algorithme précédent génére directement les relations R2, R3 et R4 précédente, mais si on ne fait pas attention à créer une relation supplémentaire contenant la clé de la relation universelle, la décomposition générée ne préserve pas les données : la recomposition affecterait tous les véhicules à toutes les personnes. Dans ce cas, on aurait obtenu une décomposition qui préservait les DF, mais pas les données. Avec des jointures, on ne retrouve pas les données de la relation U. Pour que la relation soit sans perte, il faut donc ajouter une relation contenant la clef de la relation universelle. Donc en fait, l’ultime étape de l’algorithme de décomposition en 3NF est essentielle : Si, en fin de décomposition, il n’existe pas de relation ayant la clef de la relation U, il faut créer une relation avec cette clef. 11 En effet, la 3NF n’empêche pas la redondance. Ex: Ici, on a de la redondance sur Pays. 12 On ne donne pas ici l’algo de décomposition en BCNF (voir toute littérature sur le sujet). On voit ici un exemple de décomposition qui préserve les données mais pas les DF. C’est la quatrième situation que nous n’avions pas encore rencontré ? Préservation données ET DF : Voiture en R1 et R2 ou encore homobile en R1, R2, R3 et R4 Aucune préservation : Voiture en R’1, R’2 et R’3 Préservation des DF uniquet : Homobile sans date ni prix en R2, R3 et R4 Préservation des donnés seules : Vins en Crus Région. 13 Cette séquence clôt la partie dédiée à la théorie de la normalisation. Nous verrons ultérieurement que d’autres méthodes existent pour générer des schémas relationnels, particulièrement dans le cas où les données sont variées et complexes. Toutefois ces autres méthodes laissent un très large part à l’interprétation de l’expert, et ne fournit pas de garde fous. La théorie de la normalisation permet donc de résoudre des difficultés dans le cas de problèmes difficiles à analyser mettant en jeu un ensemble réduit d’attributs. Elle est un complément aux autres méthodes (voir séquence sur la conception). 14