Bonjour Philippe,
J’ai l’habitude de manipuler les dépendances fonctionnelles dans le cadre du modèle relationnel de données (alias théorie relationnelle). Je fuis donc les pâles imitations, les méthodes très limitées comme celles qu’on trouve chez certains merisiens et qui manifestement vous sont imposées. Bref, à l’efficacité du pistolet à bouchons, je préfère celle du canon de 90...
Je suis très septique quant aux techniques proposées par ces merisiens, du genre mise en œuvre d’une matrice des DF, et des ersatz tels que « la couverture minimale d’un graphe de DF », structure d’accès théorique (SAT), qui trouvent très vite leurs limites. Si l’on n'a sous la main que des ouvrages tels que celui-ci pour traiter des DF : Comprendre Merise, outils conceptuels et organisationnels, alors on ne va pas bien loin. On vous propose de monter à l’assaut avec un char d’assaut en bois, doté d’un armement du même métal.
En tout cas, pour rester dans le système qui vous est proposé, avant de construire votre matrice, il est écrit dans l’ouvrage cité, qu’il faut d’abord éliminer dans le graphe « les transitivités », c'est-à-dire les DF inférées par la règle de transitivité, par exemple num_sala -> nom_serv (ce qui cache une tentative de normalisation en troisième forme normale).
Comme je l’ai dit, je reste donc septique quant à la puissance de feu des techniques merisiennes en matière de DF. Dans le contexte du modèle relationnel de données prenons l’exemple suivant proposé par Ullman :
Soit la variable relationnelle U {A,B,C,D,E,G}
Et l’ensemble F de DF traduisant les règles de gestion attachées à l’univers U :
A,B -> C
C -> A
B,C -> D
A,C,D -> B
D -> E
D -> G
B,E -> C
C,G -> B
C,G -> D
C,E -> A
C,E -> G
A quoi ressemblent le graphe des DF et l’inénarrable matrice ? Personnellement, ayant beaucoup modélisé dans les entreprises, mais n’ayant jamais utilisé les deux concepts en question, disons que construire le graphe est a priori très simple, même si le résultat est un fouillis inextricable, inexploitable , mais je dispose pas d’éléments suffisants en ce qui concerne la construction de la matrice et reste donc muet à son sujet (sinon, si on applique à la lettre le principe d'élimination des transitivités, la matrice ne ressemble pas à grand-chose...)
Sans grimper jusqu’aux dépendances de jointure, en passant par les dépendances multivaluées (je ne voudrais pas vous décourager...), à mon sens les concepts fondamentaux, incontournables pour décomposer U à partir des règles de gestion des données et de l’ensemble F des DF qui les symbolisent sont le suivants : variable relationnelle (relvar), en-tête de relvar, DF triviale, forme normale de Boyce-Codd (BCNF), théorème de Heath, axiomes (règles) d’Armstrong, fermeture d’un ensemble d’attributs, ensemble des clés candidates, surclé, décomposition sans perte de données, décomposition sans perte de DF, ensemble irréductible de DF, sans oublier les algorithmes précieux du genre « algorithme du seau à dépendants »)...
Si vous en avez le courage et l’envie (et un peu de temps), vous pourrez consulter l’article que j’ai pris la peine de consacrer à tout ça.
Naturellement, si je n’ai pas été clair et si vous avez des points qui vous tracassent dans la mesure où je pourrai fournir des réponses, n’hésitez pas à poser des questions.
Et surtout, ne vous découragez pas !
Partager