Cours Système d'Analyse Merise : Les Dépendances Fonctionnelles

4.  Les Dépendances Fonctionnelles.

Il arrive parfois que des données aient un rapport entre elles.  Il va falloir regrouper ces données.

Il arrive aussi que la connaissance d'une donnée nous fournisse automatiquement la valeur d'une autre donnée
(exemple : votre numéro de registre national nous fournit automatiquement vos noms et prénoms, date de naissance, …).  On dira que ces dernières données sont en dépendance fonctionnelle.
   
4.1.  Définition.

Une donnée 2 est en dépendance fonctionnelle d'une donnée 1 quand la connaissance d'une valeur de la donnée 1 permet de déterminer la connaissance d'au maximum une et une seule valeur de la donnée 2.  La donnée 1 est appelée la source et la donnée 2 est appelée le but. 

Question.

La question fondamentale à se poser est : "Connaissant une valeur de la source, peut-on connaître une valeur unique du but ?".
Quand la réponse est affirmative, on a l'habitude de représenter cette dépendance comme suit :

SOURCE =========> BUT

 Dépendance fonctionnelle à partie gauche ( source ) composée.

Il peut arriver que ce soit la combinaison de plusieurs attributs ( en source ) qui permettent de connaître une valeur unique du but.  Exemple : un numéro de facture + un code produit nous donne la quantité facturée.

(numéro de facture, code produit)     =========>   quantité facturée

On parlera de dépendance fonctionnelle à partie gauche composée ( DFPGC).

Dépendance non fonctionnelle.

Deux rubriques sont en dépendance non fonctionnelle si la connaissance d'une valeur de la première
  • ne permet de connaître aucune des valeurs de la seconde ( pas de rapport entre les deux )
  • détermine la connaissance de plusieurs valeurs de la seconde

exemples :
  • la connaissance d'un numéro de facture permet de connaître plusieurs références d'articles
  • la connaissance d'une date de naissance ne permet pas de connaître une adresse

Dépendance fonctionnelle élémentaire.

Une dépendance fonctionnelle donnée 1 =========>  donnée 2 est élémentaire s'il n'existe pas une donnée 3, sous-ensemble de donnée1, qui assure elle-même une dépendance fonctionnelle donnée 3 =========>  donnée 2.

Exemples :

Référence article =========================>    nom article
(Numéro facture, référence article ) ============>    quantité facturée
(Numéro facture, référence article ) ============>    nom article

La première est élémentaire car la référence article permet directement de connaître son nom.

La deuxième est élémentaire car le numéro de facture seul ou la référence article seule ne permet pas de connaître la quantité facturée.

La troisième n'est pas élémentaire car on peut se passer du numéro de facture pour trouver le nom de l'article ( la partie référence article du source suffit pour retrouver le nom d'article ). 

Dépendance fonctionnelle directe.

Une dépendance fonctionnelle  donnée 1  =========> donnée 2  est directe s'il n'existe pas une donnée 3 ( ou une collection de rubriques ) qui engendrerait une dépendance fonctionnelle transitive de telle sorte que l'on pourrait écrire :

Donnée 1 =========>    donnée 3  =========>  donnée 2

Exemple :

Numéro facture  =========> numéro représentant

Numéro représentant =========>  nom représentant

Numéro facture  =========>  nom représentant

On ne dessinera pas cette dernière car sa représentation est superflue.

Dépendance fonctionnelle élémentaire et directe.  ( DFED).

Les dépendances fonctionnelles que nous allons nous efforcer de trouver dans le système d'information sont celles qui sont à la fois élémentaires et directes.  Cette notion de DFED que nous noterons dorénavant DF ( en oubliant tout ce qui précédait ) est sans doute la partie la plus importante du cours car elle est le fruit de la réflexion de l'analyste alors que pour les étapes suivantes, on pourra utiliser un certain nombre de règles de passage.  Il convient donc de bien maîtriser ces notions avant d'aborder la suite de la démarche.

4.2.  Démarche de recherche des DF.

A partir du dictionnaire des données élémentaires, il faudra
  • rechercher les DF à deux rubriques élémentaires et directes
  • rechercher les DF à partie gauche composée.

Recherche des DF à deux rubriques.

On commence par rechercher les DF à deux rubriques en commençant par les plus évidentes du genre
Numéro de client =========>   nom de client

Si on a une DF du type   Numéro client  =========>  adresse, il faudra la décomposer en
Numéro de client =========>  rue
Numéro de client =========> code postal
Numéro de client =========>  localité
…..
Parfois, pour gagner du temps et de la place, on conserve la première version.

Parfois, la DF est symétrique.  Numéro état civil  ====================>  numéro de sécurité sociale.
Dans ce cas, on supprime une des deux pour garder la plus fréquemment utilisée.

Recherche des DF à partie gauche composée.

Voici la marche à suivre pour les trouver ( en respectant l'ordre suivant ) :

  • considérer l'ensemble des rubriques sources de DF simples ( S )
  • considérer l'ensemble des rubriques non encore concernées par au mois une DF simple ( ni source ni but d'au moins une DF simple )  ( N )
  • chercher une DF à partie gauche composée dont la source est composée de plusieurs rubriques de l'ensemble S ou de l'ensemble N, le but étant une rubrique de l'ensemble N.
  • quand toutes les rubriques de l'ensemble N sont concernées par au moins une DF ( aussi bien dans le but que dans la source ) ou bien quand on ne peut vraiment pas trouver de DF intégrant toutes les rubriques de N : rechercher des DFPGC dont le but serait une rubrique de S et la source des rubriques de S ou de N.  Il ne doit  beaucoup de rubriques non concernées par des DF.

Précautions relatives aux DFPGC.

Quand on traite des DFPGC, il faut toujours se poser les deux questions suivantes , si on a une DFPGC du type A, B, C  =========> D

*       n'y aurait-il pas des DF du style    D =========> A ou  D  =========> B ?
         exemple : ( date commande, n° client ) =========>  n° commande.  On préférera pourtant
         n° commande   =========> n° client et  n° commande  =========> date commande

*    n'y aurait-il pas, entre A, B, C et D une ou des DFPGC de moins de rubriques que celle citée ,
      du type D,A =========> B ?  Dans ce cas, il faut la privilégier.

Exemple :  ( jour, heure, classe, salle ) =========>  professeur où jour donne lundi , mardi, …; heure nous donne 1ère heure, 2ème heure, … ; salle nous donne son n° et classe 1ère info, …

On préférera : ((jour, heure, prof) =========> classe , etc

4.3.  Les modes de représentation des DF.

  Il existe deux méthodes pour représenter les dépendances fonctionnelles ; vous déterminerez celle qui vous convient le mieux en pensant à la manière qui est la plus parlante pour vous.

Le graphe des DF.

Il s'agit de représenter les DF par des flèches.


Dans le cas des DFPGC, on utilise un nœud représenté par un cercle :


Exemple : dans l'analyse des DF de la société OBOULO, nous avons trouvé les dépendances suivantes :




Voici le graphe des DF :


La matrice des DF.

Nous allons représenter les DF sous forme d'un tableau à deux dimensions.  On y met autant de lignes  et de colonnes que de données ( on peut se contenter des données utiles).  On procède ensuite colonne par colonne en se posant la question suivante : "Connaissant la valeur de cette rubrique, peut-on connaître une valeur unique d'une autre rubrique ligne ?".  Si la réponse est oui, on place un 1 dans la case correspondante.


Les colonnes ne contenant pas de 1 sont des alors, soit des éléments de parties gauche de DF, soit des buts.
Nous recherchons ensuite les rubriques à partie gauche composée en ajoutant autant de lignes et de colonnes que nécessaires.


Les colonnes qui contiennent des 1 sont donc des sources de DF,  les autres sont des buts.  Voici la matrice simplifiée :


-----------------------------------------------------------------------------------------------

             Suivant >> Le MCD

Article plus récent Article plus ancien

Leave a Reply