Bonsoir Capitaine,

Envoyé par
escartefigue
L'identifiant du lieu a toute sa place dans la table employé, mais pas le lieu
On est évidemment bien d’accord que la table des employés doit contenir l’identifiant du lieu et non pas le lieu proprement dit, donc que l’on mette en oeuvre une clé étrangère permettant de référencer une table des lieux : on est ici dans le domaine, je dirais l’art, de la saine modélisation, laquelle comme tu l’illustres fort bien avec tes deux modèles doit bien sûr commencer au niveau conceptuel (MCD) avant que l’on en arrive au niveau « logique » (MLD). Tes nombreux MCD/MLD chez DVP et tes recommandations auxquelles je souscris en sont la confirmation.
Mais conviens que tout ceci n’a pas grand-chose à voir au plan formel avec les dépendances fonctionnelles (lesquelles sont à manipuler au moyen des axiomes d’Armstrong qui ont vu le jour en 1974) et la 3NF (troisième forme normale). La table des employés est certes à revoir quant au lieu, mais en l’état elle respecte la 3NF ! DF et 3NF relèvent de la théorie de la normalisation des bases de données, branche des mathématiques appliquées, car tout y est axiomes, lemmes et théorèmes, ce qui échappe totalement à Merise car son objet n’est pas là. Pour sa part, Yves Tabourier (in De l’autre côté de Merise, page 89) avertit les auteurs de l’ouvrage incontournable des années 80/90(1) du danger que présente leur appellation « dépendance fonctionnelle ». Il est évident que ces auteurs n’avaient qu’une connaissance approximative de la théorie de la normalisation, initialement décrite par Codd, mais ils l’ont quand même superficiellement reprise (voir leur définition de la Normalisation dans l’ouvrage incontournable).
Quand les auteurs de l’ouvrage incontournable parlent de « leurs » dépendances fonctionnelles, il s’agit en réalité de contraintes d’unicité(3) entre entités-types (Nanci utilise plus volontiers le terme de « contrainte d’intégrité fonctionnelle »), et bien entendu les indispensables axiomes d’Armstrong pour pouvoir normaliser rationnellement n’y ont pas leur place : par exemple que signifierait pour eux l’utilisation de l’axiome d’augmentation (très précieux pour moi !) : si X → Y, alors XZ → YZ... (Au sujet des axiomes je te renvoie à la page 384 de l’ouvrage de Jeffrey Ullman(2)).
Pardonne-moi, mais tu auras compris que je suis d’une vigilance extrême dès que l’on parle de normalisation et de 3NF (et plus si affinité
).
____________________
(1) H. Tardieu, A. Rochfeld, R. Colletti - La Méthode Merise Tome 1 Principes et outils, aux Editions d’Organisation (1984).
(2) Jeffrey Ullman - Principles of Database and Knowledge-Base Systems, Volume I
(3) Je rappelle les définitions des contraintes d’unicité données par le Groupe 135 de l’Afcet - Journée du 15 novembre 1990 :
UNICITÉ COMPLÈTE (sur relation, contrainte, symbole → ou (I) ou (F)).
Une contrainte d’unicité complète est définie sur la relation R, appelée sa "portée", avec pour "cible" l’un des individus C reliés par R, si et seulement si l’occurrence de C est déterminée de façon unique lorsque l’on connaît les occurrences des autres individus reliés par R.
Remarque 1
Si l’un (des) individu(s) autre(s) que la cible joue deux ou plusieurs rôles dans la relation R, il intervient autant de fois dans la détermination de C qu’il joue de rôles dans R.
Remarque 2
Si l’individu cible joue deux ou plusieurs rôles dans la relation R, la cible doit préciser via quel rôle Cr l’occurrence de C est déterminée, les autres rôles de C dans R étant vus comme s’il agissait d’autres individus.
Remarque 3
Si plusieurs relations R, R’... peuvent être composées sans ambiguïté, la contrainte peut avoir pour "portée" cette composition, et ce qui est dit plus haut de R s’entend alors de cette composition, et ce qui est dit des individus reliés par R s’entend des individus reliés par cette composition si seuls certains des individus reliés par R, R’, ..., ou certains des rôles qu’ils y jouent, sont à retenir, ils forment le "pivot" qui doit être explicité (la cible peut alors faire partie du pivot).
UNICITÉ INCOMPLÈTE (sur relation : symbole (I)ou (F))
Une contrainte d’unicité incomplète est définie .sur la relation R, appelée sa "portée", avec pour "cible" l’un des individus C reliés par R, si et seulement si l’occurrence de C est déterminée de façon unique lorsque l’on connaît les occurrences d’une liste (S, S’, ...) d’individus ("source") reliés par R et formant avec C le "pivot" de la contrainte.
Remarque 1
Une contrainte d’unicité incomplète conduit normalement à la décomposition de sa portée et n’a donc pas à être représentée, sauf si elle porte sur la restriction d’une relation à des sous-types ; en effet dans ce cas elle ne permet pas la décomposition de la relation "principale".
Remarque 2
Si un (des) individu(s) de la source joue deux ou plusieurs rôles dans la relation R, il faut préciser via lesquels de ces rôles il intervient dans la détermination de C.
Remarque 3
Si l’individu cible joue deux ou plusieurs rôles dans la relation R, la cible doit préciser via quel rôle Cr l’occurrence de C est déterminée, les autres rôles de C dans R étant vus comme s’il agissait d’autres individus.
Partager