LE MODELE ENTITE-ASSOCIATION (3)

 

3. Un deuxième exemple : Modélisation du cas "Back on Tracks Intl"

La lecture de ce texte n'a d'intérêt que si préalablement on a lu le cas "Back on Tracks Intl" avec attention...

3.1 Recueil des données de base

Dans une première phase, nous allons répertorier les "mots" qui semblent importants pour décrire la situation présentée en commençant par le début du texte et en terminant par le document "Business account". Une telle liste pourrait donc être la suivante :

entreprises

cadres

contrat

budget global

business account

BA

société

numéro interne

date contrat

budget

situation

nom société

numéro société

nom employé

prénom employé

âge

poste occupé

réembaucher

soc embauche

no société embauche

date embauche

prise en charge

conseiller

% budget

% avancement

intervention

psychologues

consultants

formateurs

honoraires

avances honor.

clients

numéro BA

prospects

réembaucher

ID

adresse société

nom corresp.

fonction corresp.

téléphone corresp.

adresse employé

Téléphone empl

formation

poste antérieur

Un examen rapide montrerait qu'il y a des synonymes évidents : on gardera "société" pour "société", budget" pour "budget global", "employés" pour "cadres", ID" pour "numéro interne" et "numéro société". Les termes "psychologues", "consultants" et "formateurs" ne sont en fait que des exemples de "spécialités" qu'ont les conseillers, et nous garderons ce dernier terme pour la suite. On peut s'apercevoir aussi que le problème qui intéresse Monsieur Schuiten n'a rien à voir avec le paiement des conseillers, et donc les données "honoraires" et "avances honoraires" sont superflues et à éliminer. Les termes de "clients", de "prospects" et de "société embauche" font référence au fait que le rôle joué par chaque société vis-à-vis de BTI varie de l'une à l'autre. On verra par la suite ce qu'il y a lieu de faire avec ces mots.

3.2. Liens entre les données

Parmi les mots précédents qui restent après le tri préalable, on peut résumer le cas sous la forme des phrases suivantes :

3.3. Détermination des entités

Des phrases qui décrivent la situation étudiée, il ressort que l'on peut identifier plusieurs données de base candidates au statut d'entité :

A l'issue de cette première analyse, on dispose des quatre entités suivantes :

tout en gardant en mémoire la possibilité de différencier l'entité ENTREPRISE et l'éventualité de considérer l'entité BUS_ACCOUNT comme une association.

3.4. Détermination des associations

Si l'on regarde les phrases décrivant la situation et mettant en jeu les entités précédentes, on arrive à la mise en évidence des associations suivantes :

On arrive donc à la version du modèle de la figure 5, montrant les entités et les associations mises en évidence à ce stade.

Figure 5. Première version du modèle entité-association pour le cas BTI

3.5 Identification des attributs et des identifiants

Si on élimine maintenant les phrases déjà utilisées, il nous reste celles qui expriment des caractéristiques — c'est-à-dire des attributs — des entités et associations. On résumera rapidement les attributs évidents des entités :

Il nous reste maintenant un nombre réduit de "mots" qui n'ont pas encore été pris en compte, à savoir "date d'embauche", "% budget" et "% avancement". Manifestement, il s'agit d'informations nécessaires pour BTI : où les placer ?

Si une affaire se concluait par la réembauche d'un employé, il suffirait de dire que la date de réembauche est un attribut (indéfini provisoirement) de l'entité EMPLOYE. Malheureusement, une embauche à l'essai peut ne pas se concrétiser et BTI a une obligation de résultat. Il est alors nécessaire de prévoir qu'un employé peut être réembauché plusieurs fois, et donc à des dates distinctes. En conséquence, l'information "date d'embauche" sera un attribut de l'association Embaucher qui relie un employé à la(les) entreprise(s) où il se réinsère.

Pour les pourcentages de budget et d'avancement, il s'agit d'informations concernant le fait qu'un conseiller est affecté à un business account. Et ces pourcentages varient selon les conseillers et les business accounts, et pour un conseiller donné, selon les affaires qui lui sont confiées. On en conclut que ces deux informations sont des attributs que l'on nommera Part_Budget et Etat_Avancement de l'association Affecter entre CONSEILLER et BUS_ACCOUNT.

Il reste enfin la question des identifiants des entités. La question de l'identifiant de l'entité ENTREPRISE est simple. BTI utilise ce qu'elle appelle "ID" pour le numéro d'identification d'une entreprise. On suppose que ce numéro est sans équivoque et détermine une et une seule entreprise, et donc qu'il sera l'identifiant de cette entité. Il en va de même pour l'entité BUS_ACCOUNT dont on peut penser que le numéro interne joue le rôle d'identifiant.

Pour les employés, par contre, rien n'existe si l'on s'en tient à la figure 3.8 : un employé n'est identifié que par son nom et son prénom. Comme il a été dit par ailleurs, on a tout intérêt à créer de toute pièce un identifiant Num_Employé, sans sémantique, qui repérera de manière unique tout employé passant par les services de BTI. En ce qui concerne les conseillers, on a le même problème. L'ensemble du nom et du prénom, voire l'utilisation du nom seul, peut suffire comme identifiant compte tenu du faible nombre de conseillers contractés par BTI. On peut penser tout de même que pour les exploitations futures de la base de données, un identifant plus compact et mnémonique serait apprécié. On pourrait prévoir un code de trois lettres initiales de la personne, comme on le fait assez habituellement dans des groupes restreints de personnes, qui servirait d'identifiant sous le terme de Code_Conseiller. C'est ce que l'on fera ici, tout en prévoyant d'interroger Monsieur Schuiten pour vérifier si cette solution est judicieuse.

3.6. Détermination des cardinalités

La lecture du cas et des phrases répertoriées permet de définir sans ambiguïté un certain nombre de cardinalités, telles qu'elles apparaissent dans le modèle final de la figure 6.

Figure 6. Version finale du modèle entité-association du cas BTI

Certaines autres cardinalités méritent quelques explications. L'entité ENTREPRISE intervient dans les trois associations Correspondre, Licencier et Embaucher avec des cardinalités . Les cardinalités minimum de 0 expriment le fait qu'une entreprise peut ne correspondre à aucun business account — elle est donc non cliente et par la même occasion n'a pas licencié d'employé dont BTI s'occupe —, ainsi que le fait qu'une entreprise peut ne pas avoir réembauché des employés. Une entreprise dont toutes ces cardinalités minimum seraient de 0 est donc un "prospect". Et une entreprise peut n'apparaître que par le fait qu'elle a réembauché un ou plusieurs employés. On voit donc que les divers types de relations de BTI avec des entreprises sont exprimés à travers ces cardinalités.

En ce qui concerne l'entité EMPLOYE, les cardinalités "1,1" avec BUS_ACCOUNT disent qu'un employé n'est impliqué que dans un seul business account. Ceci est vrai a priori, mais peut-il se faire que par la suite on le voie réapparaître chez BTI au cours d'un second licenciement dans le cadre d'un nouveau business account ? Si tel était le cas, les cardinalités "1,1" seraient incorrectes... A la réflexion, cette éventualité est fort improbable. Même si elle devait se produire, alors on créerait un nouvel employé qui d'ailleurs n'aurait plus le même profil (âge, poste occupé notamment). Bien qu'il soit nécessaire d'imaginer ce qui peut se produire dans le futur, il est bon aussi de garder le modèle aussi simple que possible.

La dernière remarque concerne les cardinalités "0,n" dans l'association d'un employé à une entreprise qui le réembauche. Elles expriment les possibilités suivantes :

3.7 Enoncé des contraintes d'intégrité

Les données mises en jeu dans le système d'information de BTI doivent satisfaire un certain nombre de règles de cohérence que le schéma construit ne peut exprimer. On peut en identifier quelques-unes :