Modèles de données / Solutions  
       En vacances 
 
3. La question de la temporalité.

Ne jamais perdre de vue l'objectif (les "besoins de gestion"). Faire des statistiques suppose que nous sachions à quelle(s) période(s) nos salariés étaient en vacances. On nous dit que dans notre Comité d'Entreprise l'unité de mesure de la période est la semaine. Observer au passage que ce choix a des implications importantes pour le fonctionnement du système en cours de construction.
En PREMIERE ANALYSE, la semaine pendant laquelle notre salarié fréquente une activité dans un centre qualifie l'association.
D'où la solution provisoire (réfléchir aussi aux raisons pour lesquelles N° Semaine ne peut être mis sur aucune des entités) :
 

On peut avoir quelques doutes sur cette solution :
- N° Semaine ressemble étrangement à un identifiant. Or, une association n'est jamais identifiée (du moins directement).
- Surtout, si on réfléchit en occurrences, nous allons avoir beaucoup de redondances sur les valeurs de semaine : pour toutes les fréquentations qui se sont déroulées la semaine 15, on va répéter que cette semaine porte la valeur "15".

On peut donc améliorer la chose, en faisant de semaine une entité. Ce qui nous permet accessoirement d'en dire un peu plus sur ce qu'est une semaine, comme par exemple les jours où elle commence et finit (ce qui, au passage n'était pas possible si on avait conservé N° semaine dans l'association : la 3ème Forme Normale n'y aurait pas été respectée):
 

Attention! Nous venons de transformer l'association en lui ajoutant une patte. Ce n'est plus la même et il faut :
1. Recalculer toutes les cardinalités
2. Revérifier qu'elle n'est pas décomposable à l'aide de contraintes d'intégrité fonctionnelles. (Il se trouve que ce n'est pas le cas ici, mais il faut s'en assurer).

4. Où il apparaît que le noyau du modèle pourrait s'exploser.

Bien, notre association paraît plus claire maintenant.
Pourtant n'oublions pas la règle : "s'il existe une occurrence d'association, alors il existe nécessairement une et une seule occurrence de chacune des entités associées".
Qu'en est-il ici ? Traduisons : pour 1 fréquentation il y a 1 et 1 seul salarié, 1 et 1 seule semaine, 1 et 1 seul centre, 1 et 1 seule activité. Or les utilisateurs nous ont dit (à défaut il serait bon de leur poser la question) qu'un vacancier peut faire plusieurs activités la même semaine. Ils nous ont dit aussi qu'un vacancier peut séjourner plus d'une semaine dans le centre.

Il faut donc comprendre le modèle comme devant indiquer que :
FREQUENTER_a' (Dupont, semaine 15, La Baule, planche à voile)
FREQUENTER_a'' (Dupont, semaine 15, La Baule, pétanque)
FREQUENTER_a''' (Dupont, semaine 16, La Baule, planche à voile)
sont 3 occurrences distinctes de l'association FREQUENTER
Il se trouve que ceci est garanti par l'identifiant indirect de l'association : N° Matricule* N° Semaine*Nom centre* Code activité.

Donc le modèle suffit pour les besoins du projet (i.e. de l'application) : des statistiques de fréquentation. Mais si on veut lui adjoindre un jour d'autres fonctionnalités comme la gestion des inscriptions ou encore les facturations, il pourra s'avérer être insuffisant. Il serait bon d'en parler dès maintenant avec les utilisateurs (l'homme avisé est celui qui sait prévoir et anticiper)

Si l'on avait besoin de considérer 2 semaines consécutives du même salarié dans le même centre comme formant un tout, si l'on avait besoin de considérer les activités d'un salarié pendant la même semaine comme formant également un tout, il serait plus clair d'inventer la notion de SEJOUR par exemple, pour représenter EXPLICITEMENT ces faits. Encore une nouvelle affaire de proverbe chinois.
 


Auteur : Bernard Morand  Entité-Association Date de dernière mise à jour : 1/12/1998