Si un schéma de relation R n'est pas en BCNF, c'est qu'il y traîne au moins une DF non triviale, et par application du théorème de Heath, R est décomposable itérativement en relations en BCNF.
Le problème est que l'on peut perdre des DF en cours de route et il faut alors choisir :
— Préserver les DF mais ne pas décomposer, donc continuer à violer la BCNF ;
— Décomposer et respecter la BCNF mais perdre des DF (c'est-à-dire des règles de gestion des données).
Exemple :
Soit la relvar (variable relationnelle) R {A, B, C} dotée de l’ensemble de DF : F = {{A, B} -> {C}, {C} -> {A}}.
La DF {C} -> {A} détermine un sous-ensemble strict de la clé {A, B} de la relvar R : cette relvar viole donc la BCNF.
En vertu du théorème de Heath, R est décomposable en R1 {C, A} et R2 {C, B},
mais à partir de R1 et R2 on ne sait pas inférer la DF {A, B} -> {C} qui est alors perdue.
Partager