Conception d'une base de donn�es

Document Sample
Conception d'une base de donn�es Powered By Docstoc
					                                           e
              Conception d’une base de donn´es
                                                                                Cyril Gruau ∗

                                                                            e
                                                     17 octobre 2005 (corrig´ le 13 juillet 2006)




                                                         e
                                                       R´sum´  e
                                                                             e                             e
              Ce support de cours regroupe quelques notions concernant le mod´lisation conceptuelle de syst`me
                                e        e                     e           e
          d’information par sch´ma entit´s-associations (via l’´tude des d´pendances fonctionnelles), la tra-
                         e                      e                  e                      e     e
          duction en sch´ma relationnel et la d´marche inverse (r´tro-conception). Il pr´sente ´galement les
                                      e                      e
          extensions majeures du mod`le conceptuel de donn´es.




                                   e                     e             e
          Mots-clef : Merise, mod`le conceptuel, entit´, association, d´pendance fonctionnelle,
                                                            e                          e
                      graphe de couverture minimale, sch´ma relationnel, traduction, r´tro-conception,
                         e                             e
                      agr´gation, identifiant relatif, h´ritage




           e            e a e
      Compl´ments apport´s ` l’´dition de novembre 2003 :


      –         ee                      e                e
          une r´-´criture compl`te des r`gles de normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
      –                                                       e
          un nouveau paragraphe sur les d´pendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
      –         ee                      e                                                     e
          une r´-´criture compl`te de la section sur les agr´gations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
      –   idem pour les identifiants relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
      –         e
          et l’h´ritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
      –   auxquels s’ajoutent de nouveaux exemples et donc de nombreuses figures illustratives . . . . . . . . . 42




Remerciements
                   a                                       e e
    L’auteur tient ` exprimer toute sa gratitude envers Fr´d´ric Brouard pour son travail de correction
sur ce document, ses judicieux conseils et son soutien en toutes circonstances.




  ∗
      Cyril.Gruau@ensmp.fr


                                                                                             1
              `
TABLE DES MATIERES                                                                                                                                                    2


              e
Table des mati`res
Introduction                                                                                                                                                          3

      e                         e
1 Mod`le conceptuel de donn´es (MCD)                                                                                                                                  4
          e       e
  1.1 Sch´ma entit´s-associations . . . . . . . . . . . . . . . . . . . . .                                  .   .   .   .   .   .   .   .   .   .   .   .   .   .    4
                  e
      1.1.1 Entit´s et associations . . . . . . . . . . . . . . . . . . . .                                  .   .   .   .   .   .   .   .   .   .   .   .   .   .    4
      1.1.2 Attributs et identifiants . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .    5
                       e
      1.1.3 Cardinalit´s . . . . . . . . . . . . . . . . . . . . . . . . . .                                 .   .   .   .   .   .   .   .   .   .   .   .   .   .    6
      1.1.4 Associations plurielles . . . . . . . . . . . . . . . . . . . .                                  .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
                          e
      1.1.5 Association r´flexive . . . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
      1.1.6 Associations non binaires . . . . . . . . . . . . . . . . . .                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
        e
  1.2 R`gles de normalisation . . . . . . . . . . . . . . . . . . . . . . .                                  .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
                              e                 e         e
      1.2.1 Les bonnes mani`res dans un sch´ma entit´s-associations                                          .   .   .   .   .   .   .   .   .   .   .   .   .   .   10
      1.2.2 Les formes normales . . . . . . . . . . . . . . . . . . . . .                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   14
        e
  1.3 D´pendances fonctionnelles . . . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
               e                  ee
      1.3.1 D´finitions et propri´t´s . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
      1.3.2 Graphe de couverture minimale . . . . . . . . . . . . . . .                                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
                                    e          e
      1.3.3 Traduction vers un sch´ma entit´s-associations . . . . . .                                       .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
                                             e
      1.3.4 Gestion des dates et du caract`re historique . . . . . . . .                                     .   .   .   .   .   .   .   .   .   .   .   .   .   .   18
               e                         e
      1.3.5 D´pendances plurielles et r´flexives . . . . . . . . . . . . .                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
      1.3.6 Associations sans attributs . . . . . . . . . . . . . . . . .                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
        e
  1.4 M´thodologie de base . . . . . . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   21

      e                     e
2 Mod`le logique de donn´es (MLD)                                                                                                                                    22
           e
  2.1 Syst`mes logiques . . . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
           e
  2.2 Mod`le logique relationnel . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
      2.2.1 Tables, lignes et colonnes . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
               e                 e e       e
      2.2.2 Cl´s primaires et cl´s ´trang`res        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
                 e
      2.2.3 Sch´ma relationnel . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   23
  2.3 Traduction d’un MCD en un MLDR . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24

      e                        e
3 Mod`le physique de donn´es (MPD)                                                                                                                                   27
  3.1 Distinction entre MLD et MPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                                 27
  3.2 Optimisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                            27

    e
4 R´tro-conception                                                                                                                                                   28
  4.1 Traduction inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                             28
  4.2 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                           29

         e
5 Compl´ments                                                                                                                                                        30
           e
  5.1 Agr´gation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                               .   .   .   .   .   .   .   30
      5.1.1 Association de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . .                                                .   .   .   .   .   .   .   30
      5.1.2 Association de type n : m . . . . . . . . . . . . . . . . . . . . . . . . .                                                  .   .   .   .   .   .   .   32
                                                     ee
      5.1.3 Tables de codification ou tables de r´f´rence . . . . . . . . . . . . . . .                                                   .   .   .   .   .   .   .   34
  5.2 Identifiant relatif ou lien identifiant . . . . . . . . . . . . . . . . . . . . . . . .                                              .   .   .   .   .   .   .   35
               e                     e               e
      5.2.1 R´solution d’un probl`me sur le sch´ma relationnel . . . . . . . . . . .                                                     .   .   .   .   .   .   .   35
                  e
      5.2.2 Mod`le conceptuel correspondant . . . . . . . . . . . . . . . . . . . . .                                                    .   .   .   .   .   .   .   36
                                             e
      5.2.3 Discussion autour de la num´rotation des exemplaires . . . . . . . . .                                                       .   .   .   .   .   .   .   37
        e
  5.3 H´ritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                             .   .   .   .   .   .   .   38
                        e
      5.3.1 Sous-entit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                .   .   .   .   .   .   .   38
                                e              e                                e
      5.3.2 Utilisation de l’h´ritage pour s´parer les informations compl´mentaires                                                      .   .   .   .   .   .   .   39
                e
      5.3.3 Sp´cialisation des associations . . . . . . . . . . . . . . . . . . . . . . .                                                .   .   .   .   .   .   .   40
INTRODUCTION                                                                                                3


Conclusion                                                                                                 41

 ee
R´f´rences                                                                                                 41

Table des figures                                                                                           42

Index                                                                                                      43




Introduction
                                                                          e
    Quand nous construisons directement les tables d’une base de donn´es dans un logiciel de gestion des
                 e                                                                             e a
bases de donn´es (Oracle, SQL Server, DB2, Access, MySQL, PostGre, ...), nous sommes expos´s ` deux
                 e
types de probl`me :
    – nous ne savons pas toujours dans quelle table placer certaines colonnes (par exemple, l’adresse de
       livraison se met dans la table des clients ou dans la table des commandes?) ;
                            a e                                     e
    – nous avons du mal ` pr´voir les tables de jonction interm´diaires (par exemple, la table des in-
             e
       terpr´tations qui est indispensable entre les tables des films et la table des acteurs).
               e                    a     e        e
Il est donc n´cessaire de recourir ` une ´tape pr´liminaire de conception.

                     e    e                          e                    e        ´            e
    Les techniques pr´sent´es ici font partie de la m´thodologie Merise (M´thode d’Etude et de R´alisation
                           e                     e     e
Informatique pour les Syst`mes d’Entreprise) ´labor´e en France en 1978 [Tardieu et al.], qui permet no-
                               e                            c             e      e
tamment de concevoir un syst`me d’information d’une fa¸on standardis´e et m´thodique.

                                                             e         e
    Le but de ce support de cours est d’introduire le sch´ma entit´s-associations (section 1), le sch´ma  e
relationnel (sections 2 et 3) et d’expliquer la traduction entre les deux (sections 2.3 et 4). La construction
       e         e                                  e             e
du sch´ma entit´s-associations peut se faire en ´tudiant les d´pendances fonctionnelles (section 1.3) et
en tenant compte d’un certain nombre d’extensions conceptuelles incontournables (section 5).

                                         e
    Ne sont malheureusement pas abord´s ici : les contraintes, les traitements, le langage relationnel et la
                                                              e a                        e
gestion de projet. Pour toutes ces notions importantes, car li´es ` la conception de syst`mes d’information,
                    e                                                                      e
le lecteur est dirig´ vers [Akoka et Comyn-Wattiau, Matheron, Nanci et al.]. La mod´lisation objet ne
                                         e
fait pas non plus partie des outils expos´s dans ce document.
1          `                     ´
        MODELE CONCEPTUEL DE DONNEES (MCD)                                                                   4


1           e                     e
         Mod`le conceptuel de donn´es (MCD)
               e e           e                                                  e              e
    Avant de r´fl´chir au sch´ma relationnel d’une application, il est bon de mod´liser la probl´matique
` traiter d’un point de vue conceptuel et ind´pendamment du logiciel utilis´.
a                                            e                             e

1.1           e        e
           Sch´ma entit´s-associations
            e
   La mod´lisation conceptuelle que nous proposons dans ce document pour un univers dont on veut sto-
              e           a e                             e     e e               e        e
cker les donn´es, conduit ` l’´laboration d’un type de sch´ma tr`s r´pandu, le sch´ma entit´s-associations.

1.1.1             e
             Entit´s et associations
    Une entit´ est une population d’individus homog`nes. Par exemple, les produits ou les articles vendus
              e                                    e
par une entreprise peuvent ˆtre regroup´s dans une mˆme entit´ articles (figure 1), car d’un article
                             e           e             e        e
a                                                      a                               e
` l’autre, les informations ne changent pas de nature (` chaque fois, il s’agit de la d´signation, du prix
unitaire, etc.).


           clients                                articles                                  fournisseurs
    -   numéro client                         - numéro article                            - n° fournisseur
    -   nom client                            - désignation                               - nom contact
    -   prénom                                - prix unitaire                             - n° téléphone
    -   adresse client                          de vente                                    contact
    -   ...                                   - ...                                       - ...


                                                           e
                                             Fig. 1 – Entit´s

                                                            e            e
    Par contre, les articles et les clients ne peuvent pas ˆtre regroup´s : leurs informations ne sont pas
        e                       e                                      e
homog`nes (un article ne poss`de pas d’adresse et un client ne poss`de pas de prix unitaire). Il faut donc
      e                  e                     e                    e
leur r´server deux entit´s distinctes : l’entit´ articles et l’entit´ clients.

   Une association est une liaison qui a une signification pr´cise entre plusieurs entit´s. Dans notre
                                                                e                        e
                                                  e                       e
exemple, l’association commander est une liaison ´vidente entre les entit´s articles et clients, tandis
                         e                e                        e
que l’association livrer ´tablit le lien s´mantique entre les entit´s articles et fournisseurs.


           clients          commander              articles               livrer            fournisseurs
    -   numéro client                         - numéro article                            - n° fournisseur
    -   nom client       - quantité           - désignation                               - nom contact
                                                                   - quantité livrée
    -   prénom             commandée          - prix unitaire                             - n° téléphone
                                                                   - date livraison
    -   adresse client   - date de              de vente                                    contact
                                                                   - nom livreur
    -   ...                commande           - ...                                       - ...



                                          Fig. 2 – Associations

                                 e            e                                     e
   Remarquons que dans ce sch´ma, les entit´s clients et fournisseurs ne sont pas li´es directement,
                               e
mais indirectement, via l’entit´ articles, ce qui est assez naturel.
1          `                     ´
        MODELE CONCEPTUEL DE DONNEES (MCD)                                                                     5


1.1.2        Attributs et identifiants
                                  ee             e
        Un attribut est une propri´t´ d’une entit´ ou d’une association.

                                                                                      e
    Toujours dans notre exemple (figure 3), le prix unitaire est un attribut de l’entit´ articles, le nom
                                     e
de famille est un attribut de l’entit´ clients, la quantit´ command´e est un attribut de l’association
                                                          e         e
commander et la date de livraison est un attribut de l’association livrer.


           clients            commander              articles                livrer           fournisseurs
    -   numéro client                            - numéro article                          - n° fournisseur
    -   nom client        - quantité             - désignation                             - nom contact
                                                                     - quantité livrée
    -   prénom              commandée            - prix unitaire                           - n° téléphone
                                                                     - date livraison
    -   adresse client    - date de                de vente                                  contact
                                                                     - nom livreur
    -   ...                 commande             - ...                                     - ...



                                               Fig. 3 – Attributs

             e                                                                                        e
   Une entit´ et ses attributs ne doivent traiter que d’un seul sujet afin d’assurer une certaine coh´rence
        e                                          ee
au mod`le. Dans notre exemple, il est donc pr´f´rable de ne pas mettre les informations relatives aux
                         e                       o                e               e e           e a         e
fournisseurs dans l’entit´ des articles mais plutˆt dans une entit´ fournisseurs s´par´es (et li´e ` l’entit´
articles via l’association livrer).

                                          e     e                       e
    Ensuite, chaque individu d’une entit´ doit ˆtre identifiable de mani`re unique. C’est pourquoi toutes
         e                e
les entit´s doivent poss´der un attribut sans doublon (c’est-`-dire ne prenant pas deux fois la mˆme
                                                                a                                   e
valeur). Il s’agit de l’identifiant que l’on souligne sur le sch´ma, par convention. Le num´ro de client
                                                               e                           e
                                              e
constitue un identifiant classique pour l’entit´ clients (figure 4).


           clients            commander               articles               livrer           fournisseurs
    -   numéro client                            - numéro article                           - n° fournisseur
    -   nom client         - quantité            - désignation                              - nom contact
                                                                      - quantité livrée
    -   prénom               commandée           - prix unitaire                            - n° téléphone
                                                                      - date livraison
    -   adresse client     - date de               de vente                                   contact
                                                                      - nom livreur
    -   ...                  commande            - ...                                      - ...



                                              Fig. 4 – Identifiants

        Remarques :
                   e     e
        – une entit´ poss`de au moins un attribut (son identifiant) ;
                                             e     e
        – au contraire, une association peut ˆtre d´pourvue d’attribut.
1          `                     ´
        MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                6


1.1.3                  e
             Cardinalit´s
                e                          e                      e
   La cardinalit´ d’un lien entre une entit´ et une association pr´cise le minimum et le maximum de fois
                         e      e            e
qu’un individu de l’entit´ peut ˆtre concern´ par l’association.

                                         e                                            e         e     e
   Exemple : un client a au moins command´ un article et peut commander n articles (n ´tant ind´termin´),
                                ee          e                     e                           e
tandis qu’un article peut avoir ´t´ command´ entre 0 et n fois (mˆme si ce n’est pas le mˆme n que
pr´c´demment). On obtient alors le sch´ma entit´s-associations complet 1 (figure 5).
  e e                                 e        e


           clients             commander                  articles                  livrer                fournisseurs
    -   numéro client                               - numéro article                                   - n° fournisseur
    -   nom client           - quantité
                         1,n   commandée        0,n - désignation        1,n - quantité livrée     1,n - nom contact
    -   prénom                                      - prix unitaire          - date livraison          - n° téléphone
    -   adresse client       - date de                de vente                                           contact
                                                                             - nom livreur
    -   ...                    commande             - ...                                              - ...


                                                                    e
                                                 Fig. 5 – Cardinalit´s

                   e                                                                       e
    Une cardinalit´ minimale de 1 doit se justifier par le fait que les individus de l’entit´ en question ont
                                                                                     e
besoin de l’association pour exister (un client n’existe pas avant d’avoir command´ quoique ce soit, donc
             e                    e
la cardinalit´ minimale de l’entit´ clients dans l’association commander est 1). Dans tous les autres cas,
             e                                                 ee
la cardinalit´ minimale vaut 0 (c’est le cas pour une liste pr´-´tablie d’articles par exemple).

                                                   e                                   e
    Ceci dit, la discussion autour d’une cardinalit´ minimale 0 ou 1 n’est vraiment int´ressante que lorsque
             e                                                                         e
la cardinalit´ maximale est 1. Nous verrons en effet lors de la traduction vers un sch´ma relationnel (sec-
tion 2.3), que lorsque la cardinalit´ maximale est n, nous ne pouvons pas faire la diff´rence entre une
                                     e                                                     e
          e                                  e
cardinalit´ minimale de 0 et une cardinalit´ minimale de 1.

                                                    e              e
     Notons que sur notre exemple, un article peut ˆtre command´ par plusieurs clients. Cela provient du
                                                  e e                                            e
fait que tous les crayons rouges ne sont pas num´rot´s individuellement, mais portent un num´ro d’article
                                        e
collectif. En toute rigueur, notre entit´ articles aurait du s’appeler types d’article. Ainsi, un crayon
             e              e                                                     e            a
rouge peut ˆtre command´ par plusieurs clients, ce n’est simplement pas le mˆme crayon ` chaque fois.
                             e                          e e                                                 a
Il s’agit d’un choix de mod´lisation, le lecteur peut tr`s l´gitimement faire le choix inverse qui consiste `
      e
num´roter individuellement chaque crayon rouge.

                      e       e                              e
   La seule difficult´ pour ´tablir correctement les cardinalit´s est de se poser les questions dans le bon
sens. Autour de l’association commander, par exemple :
                                       (                                               )
   – cˆt´ clients, la question est ( un client peut commander combien d’articles ? ) et la r´ponse est
        oe                                                                                     e
                               )
      (( entre 1 et plusieurs ) ;
                                         (
   – cˆt´ articles, la question est ( un article peut ˆtre command´ par combien de client ? )) et cette
        oe                                              e            e
                              (                      ).
      fois-ci, la r´ponse est ( entre 0 et plusieurs )
                   e




                    e          e          e                                                                              e
  1. Le lecteur avis´ aura not´ que le sch´ma de la figure 5 comporte des erreurs de conception. Ces erreurs seront corrig´es
                     e e a                           e         e
dans la section 1.2 d´di´e ` la normalisation des sch´mas entit´s-associations.
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                   7


1.1.4   Associations plurielles
    Deux mˆmes entit´s peuvent ˆtre plusieurs fois en association (c’est le cas sur la figure 6).
          e         e          e


                                                        posséder

                                                  - date
                                                    d’acquisition
                                                  - prix achat
                                            0,n
                                                                       1,1
                           personnes                    résider
                                                                               logements
                       -   n° personnel             principalement
                                            0,1   - date d’entrée      0,n   - n° logement
                       -   nom
                                                  - montant du               - adresse
                       -   prénom
                                                    loyer                    - ...
                       -   ...                                         0,n
                                            0,n
                                                       résider
                                                   secondairement
                                                  - date d’entrée
                                                  - montant du loyer



                                          Fig. 6 – Associations plurielles

                                                  e                       e          e       e
    Dans cet exemple issu d’une agence immobili`re, une personne peut ˆtre propri´taire, r´sider princi-
               e                                          ee
palement ou r´sider secondairement dans un logement g´r´ par l’agence. Les logements qui ne sont pas
 ee                                           e                                                     e
g´r´s par l’agence ne figurent pas dans l’entit´s des logements, ce qui explique certaines cardinalit´s 0 du
   e                      e                                  e
sch´ma. Nous supposons ´galement qu’un logement n’est d´tenu que par une seule personne et que ce
      e                                         e
propri´taire figure obligatoirement dans l’entit´ des personnes.

1.1.5                e
        Association r´flexive
                  a                    e         e                 a     e        e
    Il est permis ` une association d’ˆtre branch´e plusieurs fois ` la mˆme entit´, comme par exemple
l’association binaire r´flexive de la figure 7.
                       e


                                                         diriger

                                                   - date début


                                           0,1                         0,n
                                                        employés
                                                    -   n° employé
                                                    -   nom
                                                    -   fonction
                                                    -   adresse
                                                    -   ...


                                                                e
                                          Fig. 7 – Association r´flexive

                                   e         e                        e                      e e
  Dans cet exemple, tout employ´ est dirig´ par un autre employ´ (sauf le directeur g´n´ral) et un
      e                                     e                                 e            e
employ´ peut diriger plusieurs autres employ´s, ce qui explique les cardinalit´s sur le sch´ma.
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                      8


1.1.6    Associations non binaires
                               e                                           e
    Lorsqu’autour d’une entit´, toutes les associations ont pour cardinalit´s maximales 1 au centre et n
a      e                  e                     e           e                            e a
` l’ext´rieur, cette entit´ est candidate pour ˆtre remplac´e par une association branch´e ` toutes les
     e                              e
entit´s voisines avec des cardinalit´s identiques 0,n.

             e                            e                              e
    La deuxi`me condition qu’il faut imp´rativement satisfaire est la r`gle de normalisation des attributs
                                            e                    a                                 e
des associations (section suivante). Cette r`gle conduit parfois ` l’apparition d’associations qui ´tablissent
         e                       e
un lien s´mantique entre 3 entit´s ou plus.

    Sur l’exemple de la figure 8 issu d’un cin´ma, l’entit´ projections est uniquement entour´e d’asso-
                                              e          e                                      e
                            e                    oe                                oe                  e
ciations dont les cardinalit´s maximales sont 1 cˆt´ projections et n de l’autre cˆt´. De plus, la donn´e
d’un cr´neau, d’un film et d’une salle suffit ` d´terminer une projection unique
       e                                     a e                                2 . On peut donc la rem-

                                             e                e
placer par une association projeter branch´e aux trois entit´s salles, cr´neaux horaires et films.
                                                                            e
On parle alors d’association ternaire.




                                          e       c
                            Fig. 8 – Entit´ rempla¸able par une association ternaire




                               e e                           e       e                                      e      e
   2. sans la date dans l’entit´ cr´neaux horaires, la donn´e d’un cr´neau, d’un film et d’une salle aurait d´termin´ plusieurs
projections et l’association ternaire n’aurait pas pu se faire
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                              9


                e                                                                   e
   La difficult´ de concevoir une association ternaire (ou plus) directement est d’´tablir les bonnes car-
       e                       e                         e        e
dinalit´s. Il est donc conseill´ d’en passer par un sch´ma entit´s-associations dans lequel on ne trouve
                                           e            e        c
que des associations binaires, puis de rep´rer les entit´s rempla¸ables par des associations, comme sur la
         a
figure 8 ` gauche.

            e                             e
    Cette r`gle de conduite permet d’´viter d’introduire une association ternaire abusive, par exemple
entre les avions, les pilotes et les vols (figure 9), car le concepteur peut s’apercevoir que l’une des cardi-
     e
nalit´s maximales ne convient pas.


                                                                                                     avions
                                                                      utiliser           -   numéro avion
                                                                                     0,n -   date mise en service
                                                                                         -   modèle
                                                                                         -   propriétaire
                                                                        1,1
                   vols
                                                                      départs
             - numéro vol
             - heure de départ           correspondre          - numéro départ
                                   0,n                     1,1 - date
               prévue
             - heure d’arrivée                                 - heure de départ
               prévue                                            effective
                                                                        1,n
                                                                                               pilotes
                                                                      assurer
                                                                                     0,n - numéro pilote
                                                                                         - nom
                                                                                         - grade


                                      e e                       c
     Fig. 9 – Contre-exemple : l’entit´ d´parts n’est pas rempla¸able par une association ternaire

                                        e           e a                     e
    Par ailleurs, une association peut ˆtre branch´e ` plus de trois entit´s, comme sur la figure 10. L`-    a
                        e     u         e       e                                      e                    e
encore, le conseil pour ˆtre sˆr de la l´gitimit´ de cette association 4-aire, est de v´rifier les cardinalit´s
           e          e                      ıtre a                   e
sur un sch´ma interm´diaire faisant apparaˆ ` la place, une entit´ occupations et quatre associations
binaires.

                                                         jours
                                                    dans la semaine
                                                   - n° jour
                                                   - jour

                                                          0,n
                             semaines                                            créneaux horaires
                            dans l’année                occuper                   dans la journée
                                             0,n                       0,n
                          - n° semaine              - motif                   - n° créneau
                          - date de début                                     - heure de début
                                                          0,n

                                                         salles
                                                      - n° salle
                                                      - capacité


                                                          e
                                 Fig. 10 – Exemple d’entit´ quaternaire ou 4-aire
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                      10


1.2      e
        R`gles de normalisation
             e        e                     e       a    e
   Un bon sch´ma entit´s-associations doit r´pondre ` 9 r`gles de normalisation, que le concepteur doit
     ıtre
connaˆ par cœur.

1.2.1                   e               e        e
         Les bonnes mani`res dans un sch´ma entit´s-associations
                               e                             e                 c
    Normalisation des entit´s (importante) : toutes les entit´s qui sont rempla¸ables par une associa-
             e           e
tion doivent ˆtre remplac´es (comme sur la figure 8).

                                               e                                          e
    Normalisation des noms : le nom d’une entit´, d’une association ou d’un attribut doit ˆtre unique.

    Conseils :
                    e
    – pour les entit´s, utiliser un nom commun au pluriel (par exemple : clients) ;
                                               a                                                e
    – pour les associations, utiliser un verbe ` l’infinitif (par exemple : effectuer, concerner) ´ventuellement
      ` la forme passive (ˆtre command´) et accompagn´ d’un adverbe (avoir lieu dans, pendant, `) ;
      a                    e                e                 e                                          a
                                                                                           e        e
    – pour les attributs, utiliser un nom commun singulier (par exemple : nom, num´ro, libell´, descrip-
            e                             e                     e
      tion) ´ventuellement accompagn´ du nom de l’entit´ ou de l’association dans laquelle il se trouve
                                            e
      (par exemple : nom de client, num´ro d’article).

                                                  e                                             e
    Remarque : lorsqu’il reste plusieurs fois le mˆme nom, c’est parfois symptomatique d’une mod´lisation
                    e
qui n’est pas termin´e (figure 11(a)) ou le signe d’une redondance (figure 11(b)).



                      étudiants            enseignants                                       personnes
                  -   n° étudiant      -   n° enseignant                                 -   n° personnel
                  -   nom              -   nom                       fusion              -   nom
                  -   prénom           -   prénom                                        -   prénom
                  -   adresse          -   adresse                                       -   adresse

                                                   e       e            e           e
                                     (a) Deux entit´s homog`nes peuvent ˆtre fusionn´es



                                    clients                                        commandes
                             - numéro client                passer              - n° commande
                             - nom client           1,n                   1,1   - date commande
                             - adresse de                                       - adresse de
                               livraison                                          livraison

                                           redondance, donc risque d’incohérence

                                                                     e
                             (b) Si deux attributs contiennent les mˆmes informations, alors
                             la redondance induit non seulement un gaspillage d’espace mais
                             e                                e
                             ´galement un grand risque d’incoh´rence : ici, les adresses risquent
                                       e         e                                u
                             de ne pas ˆtre les mˆmes et dans ces conditions, o` faut-il livrer
                             ?



                           Fig. 11 – Contre-exemples de la normalisation des noms
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                         11


                                                e          e
    Normalisation des identifiants : chaque entit´ doit poss´der un identifiant.

    Conseils :
      e                             e
    – ´viter les identifiants compos´s de plusieurs attributs (comme par exemple un identifiant form´ pare
      les attributs nom et pr´nom), car d’une part c’est mauvais pour les performances et d’autres part,
                                e
              e        e                 e             o               e     e
      l’unicit´ suppos´e par une telle d´marche finit tˆt ou tard par ˆtre d´mentie ;
         ee                                                                            e
    – pr´f´rer un identifiant court pour rendre la recherche la plus rapide possible (´viter notamment les
      chaˆ               e                  e                                         e       e     e
          ınes de caract`res comme un num´ro de plaque d’immatriculation, un num´ro de s´curit´ sociale
      ou un code postal    3) ;

      e       e
    – ´viter ´galement les identifiants susceptibles de changer au cours du temps (comme les plaques
                                      e       e     e
      d’immatriculation ou les num´ros de s´curit´ sociale provisoires).
                                     e        e                                   e                     e
Conclusion : l’identifiant sur un sch´ma entit´s-associations (et donc la future cl´ primaire dans le sch´ma
relationnel) doit ˆtre un entier, de pr´f´rence incr´ment´ automatiquement 4 .
                   e                    ee          e    e

   Normalisation des attributs (importante) : remplacer les attributs en plusieurs exemplaires en une
                 e                      e                                                      a
association suppl´mentaire de cardinalit´s maximales n et ne pas ajouter d’attribut calculable ` partir
d’autres attributs.

                                                                              e      e         e
  En effet, d’une part, les attributs en plusieurs exemplaires posent des probl`mes d’´volutivit´ du
   e
mod`le (sur la figure 12(a) ` gauche, comment faire si un employ´ a deux adresses secondaires ?) et
                           a                                     e


                                                                         employés               occuper           adresses
              employés                                                               1,n                  1,n
                                                                    - n° employé           - type               - n° adresse
     -   n° employé                                                 - nom                                       - adresse
     -   nom
                                                                          1,n
     -   adresse principale              normalisation
     -   adresse secondaire                                              posséder           numéros de tél.
     -   n° téléphone domicile                                                       1,n - n° de n° de tél.
     -   n° téléphone portable                                                           - n° de téléphone
                                                                                         - fixe ou portable

                                                                  e                           e
                    (a) Attributs en plusieurs exemplaires remplac´s par une association suppl´mentaire



                                                                                     articles
                                   commandes                   figurer
                                                                                - numéro article
                                 - n° commande       1,n                    0,n - désignation
                                 - date commande           - quantité
                                                                                - prix unitaire
                                 - montant total
                                                                                  de vente

                                      calculable à partir de

                                                                                      e
                                     (b) Attribut calculable qu’il faut retirer du sch´ma



                           Fig. 12 – Contre-exemples de la normalisation des attributs

                                                                   e
d’autre part, les attributs calculables induisent un risque d’incoh´rence entre les valeurs des attributs de
              e       e    e
   3. Un num´ro de s´curit´ sociale, un code postal ou un num´ro de t´l´phone sont bien des chaˆ
                                                               e        ee                                      e      e
                                                                                                  ınes de caract`res, mˆme
                                                                             e
si elles ne comportent que des chiffres, tout simplement parce que ces num´ros peuvent commencer par un 0, ce qui, en
informatique, n’est pas possible avec un entier.
                    e                   e                                              a                  e
   4. Le seul inconv´nient de cette num´rotation arbitraire est qu’il devient possible ` une table de poss´der deux fois la
  e                         e       e
mˆme ligne (avec deux num´ros diff´rents). Le conseil reste pourtant largement avantageux
1          `                     ´
        MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                        12


                                   e
base et celles des attributs calcul´s, comme sur la figure 12(b).

                                                     ae                a                       a
    D’autres d’attributs calculables classiques sont ` ´viter, comme l’ˆge (qui est calculable ` partir de
                                     e                       a                     ıne
la date de naissance) ou encore le d´partement (calculable ` partir d’une sous-chaˆ du code postal).

   Normalisation des attributs des associations (importante) : les attributs d’une association
         e                                                      e
doivent d´pendre directement des identifiants de toutes les entit´s en association.

   Par exemple, sur la figure 5 la quantit´ command´e d´pend ` la fois du num´ro de client et du
                                         e        e e          a               e
                                                                                  e           a
num´ro d’article, par contre la date de commande non. Il faut donc faire une entit´ commandes ` part,
   e
idem pour les livraisons (figure 13).


           clients                                           articles                                            fournisseurs
                                 concerner (1)
    -   numéro client                                  - numéro article               concerner (2)            - n° fournisseur
    -   nom client             - quantité          0,n - désignation        1,n                                - nom contact
                                                                                   - quantité livrée
    -   prénom                   commandée             - prix unitaire                                         - n° téléphone
    -   adresse client                                   de vente                                                contact
                                      1,n                                                  1,n
            1,n                                                                                                      1,n

                                  commandes                                             livraisons
           passer                                                                                                   livrer
                         1,!   - n° commande                                         - n° livraison     1,!
                               - date commande                                       - date de                - nom du livreur
                                                                                       livraison


                                Fig. 13 – Normalisation des attributs des associations

            e                e                                             a
    L’inconv´nient de cette r`gle de normalisation est qu’elle est difficile ` appliquer pour les associations
           e                            e            e
qui ne poss`dent pas d’attribut. Pour v´rifier malgr´ tout qu’une association sans attribut est bien nor-
     e                                    a
malis´e, on peut donner temporairement ` cette association un attribut imaginaire (mais pertinent) qui
            e         e
permet de v´rifier la r`gle.

                                e
    Par exemple, entre les entit´s livres et auteurs de la figure 16, l’association ´crire ne poss`de pas
                                                                                   e             e
d’attribut. Imaginons que nous ajoutions un attribut pourcentage qui contient le pourcentage du livre
e                               e                                              e      a
´crit par chaque auteur (du mˆme livre). Comme cet attribut pourcentage d´pend ` la fois du num´ro   e
                  e                                                    e
de livre et du num´ro d’auteur, l’association ´crire est bien normalis´e.
                                              e

               e                                                                   e                    e
   Autre cons´quence de la normalisation des attributs des associations : une entit´ avec une cardinalit´
de 1,1 ou 0,1 aspire les attributs de l’association (figure 14).

                                  fournisseurs                                           livraisons
                                                               livrer
                                - n° fournisseur                                       - n° livraison
                                - nom contact      1,n                         1,1     - date de
                                                         - nom du livreur
                                - n° téléphone                                           livraison
                                  contact                                              -
                                                          cet attribut passe ici


                                                    e
                                Fig. 14 – Cardinalit´ 1,1 et attributs d’une association
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                                  13


                                                          e                            o
   Normalisation des associations (importante) : il faut ´liminer les associations fantˆmes (figure 15(a)),
redondantes (figure 15(b)) ou en plusieurs exemplaires (figure 15(c)).



                  fournisseurs
            - n° fournisseur               1,1                                                            fournisseurs
            - nom fournisseur                                                                        -   n° fournisseur
            - adresse                            travailler chez                                     -   nom fournisseur
                                                                                   fusion            -   adresse
                    contacts                                                                         -   nom du contact
                - n° contact                                                                         -   n° téléphone
                - nom du contact               1,1                                                       du contact
                - n° téléphone
                  du contact

                                                 e                                                 o
                               (a) les cardinalit´s sont toutes 1,1 donc c’est une association fantˆme



                                                                             règlements
                                                       payer
                                                                     1,1 - n° règlement
                                                                         - date règlement
                                           0,n                                                1,1
                          clients                                        - montant                  correspondre
                   - numéro client
                   - nom client            0,n                                 factures       0,n
                                                      recevoir
                                                                      1,1 - n° facture
                                                                          - date facture
                                                                          - montant total

                                                    e
                     (b) si un client ne peut pas r´gler la facture d’un autre client, alors l’association
                                               e            e
                     payer est inutile et doit ˆtre supprim´e (dans le cas contraire, l’association payer
                          e
                     doit ˆtre maintenue)



                              joueurs de tennis                                                                     joueurs de tennis
                          -   n° joueur                                                                         -   n° joueur
                          -   nom                                                                               -   nom
                          -   genre                                                                             -   genre
                          -   classement                                                                        -   classement
                      0,n        0,n     0,n         0,n                                                                  0,n

     joueur 1         joueur 2           co-équipier 1             co-équipier 2                                         jouer
                                                                                            normalisation

                    1,1         1,1        0,1          0,1                                                         2,4 ou plutôt 1,n

                              matchs de tennis                                                                      matchs de tennis
                          - n° match                                                                            - n° match
                          - date                                                                                - date

                 (c) une association suffit pour remplacer les 4 associations participer en tant que ...



                          Fig. 15 – Contre-exemples de la normalisation des associations
1          `                     ´
        MODELE CONCEPTUEL DE DONNEES (MCD)                                                                 14


    En ce qui concerne les associations redondantes, cela signifie que s’il existe deux chemins pour se rendre
            ea                                                                       e            e
d’une entit´ ` une autre, alors ils doivent avoir deux significations ou deux dur´es de vie diff´rentes. Si-
                                                            e         a
non, il faut supprimer le chemin le plus court, car il est d´ductible ` partir de l’autre chemin. Dans notre
exemple de la figure 15(b), si on supprime l’association payer, on peut retrouver le client qui a pay´ le  e
 e
r`glement en passant par la facture qui correspond.

                                               e
    Remarque : une autre solution pour le probl`me de la figure 15(b) consiste ` retirer l’entit´ r`glements
                                                                              a                e e
                                               e                                                  e
et d’ajouter une association r´gler avec les mˆmes attributs (sauf l’identifiant) entre les entit´s clients
                              e
et factures.

                                    e                 e
    Normalisation des cardinalit´s : une cardinalit´ minimale est toujours 0 ou 1 (et pas 2, 3 ou n)
                 e
et une cardinalit´ maximale est toujours 1 ou n (et pas 2, 3, ...).

                                      e                                                                    a
    Cela signifie que si une cardinalit´ maximale est connue et vaut 2, 3 ou plus (comme sur la figure 15(c) `
                                 e                               e                      e
droite, ou pour un nombre limit´ d’emprunts dans une biblioth`que), alors nous consid´rons quand mˆme   e
               e       e                                             e
qu’elle est ind´termin´e et vaut n. Cela se justifie par le fait que mˆme si nous connaissons n au moment
                                               e                                                      e
de la conception, il se peut que cette valeur ´volue au cours du temps. Il vaut donc mieux consid´rer n
                         e     e
comme une inconnue d`s le d´part.

                 e                        e                      e
   Cela signifie ´galement qu’on ne mod´lise pas les cardinalit´s minimales qui valent plus de 1 car ce
                              e ae                                           e
genre de valeur est aussi amen´e ` ´voluer. Par ailleurs, avec une cardinalit´ maximale de 0, l’association
n’aurait aucune signification.

                                                                     e
   Dans un SGBD relationnel, nous pourrions assurer les cardinalit´s valant 2, 3 ou plus, via l’utilisation
    e                                                  e
de d´clencheurs. Mais cette notion n’est pas abord´e dans ce document qui se contente, au contraire, de
 e                                                       e
d´crire ce qu’il est possible de faire sans utiliser de d´clencheur.

1.2.2       Les formes normales
   `         e                                                       e
   A ces 6 r`gles de normalisation, il convient d’ajouter les 3 premi`res formes normales traditionnel-
       e      e               e
lement ´nonc´es pour les sch´mas relationnels, mais qui trouvent tout aussi bien leur place en ce qui
                e         e
concerne les sch´mas entit´s-associations.

          e                      a                e                e
   Premi`re forme normale : ` un instant donn´ dans une entit´, pour un individu, un attribut ne
peut prendre qu’une valeur et non pas, un ensemble ou une liste de valeurs.

                                                                                              e      e
   Si un attribut prend plusieurs valeurs, alors ces valeurs doivent faire l’objet d’une entit´ suppl´mentaire,
                            e
en association avec la premi`re (figure 16).


            livres
                                                          livres
    -   numéro livre
                                                  -   numéro livre            écrire             auteurs
    -   titre
                            ère                   -   titre             1,n              1,n - numéro auteur
    -   auteurs            1      forme normale
                                                  -   éditeur                                - nom
    -   éditeur
                                                  -   nombre de pages
    -   nombre de pages
                                                  -   année
    -   année


                                 e                                                                       e
Fig. 16 – Application de la premi`re forme normale : il peut y avoir plusieurs auteurs pour un livre donn´
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                          15


           e                                          e            e
    Deuxi`me forme normale : l’identifiant peut ˆtre compos´ de plusieurs attributs mais les autres
                    e          e
attributs de l’entit´ doivent d´pendre de l’identifiant en entier (et non pas une partie de cet identifiant).

               e                          e        e
   Cette deuxi`me forme normales peut ˆtre oubli´e si on suit le conseil de n’utiliser que des identifiants
            e                         e e         ee     e                          e
non compos´s et de type entier. En v´rit´, elle a ´t´ vid´e de sa substance par la r`gle de normalisation
des attributs des associations (page 12).

          e          e                                                 e
    Consid´rons malgr´ tout le contre-exemple suivant : dans une entit´ clients dont l’identifiant est
        e                                           e                  e
compos´ des attributs nom et pr´nom, la date de fˆte d’un client ne d´pend pas de son identifiant en
                                e
                                                                     e
entier mais seulement de pr´nom. Elle ne doit pas figurer dans l’entit´ clients, il faut donc faire une
                            e
     e            a                                  e
entit´ calendrier ` part, en association avec l’entit´ clients.

         e                                                                            e
   Troisi`me forme normale de Boyce-Codd (importante) : tous les attributs d’une entit´ doivent
 e
d´pendre directement de son identifiant et d’aucun autre attribut.

                                                                                e e e
   Si ce n’est pas le cas, il faut placer l’attribut pathologique dans une entit´ s´par´e, mais en association
              e
avec la premi`re.


                          e
                       num´ro avion     constructeur   mod`le
                                                           e            e
                                                                 capacit´           e
                                                                             propri´taire
                            1              Airbus       A380       180        Air France
                            2             Boeing        B747       314      British Airways
                            3              Airbus       A380       180            KLM

                                                  e
Tab. 1 – Il y a redondance (et donc risque d’incoh´rence) dans les colonnes constructeur et capacit´
                                                                                                   e

                        e                  a                                   e
    Par exemple, l’entit´ avions (figure 17 ` gauche) dont les valeurs sont donn´es dans le tableau 1,
                   e
n’est pas en troisi`me forme normale de Boyce-Codd, car la capacit´ et le constructeur d’un avion
                                                                    e
     e                                                                       e         e
ne d´pendent pas du num´ro d’avion mais de son mod`le. La solution normalis´e est donn´e figure 17 `
                          e                         e                                               a
droite.

          avions
                                                                                              modèles d’avion
    -   numéro avion
                                                        avions              être du       -   numéro modèle
    -   constructeur
                              3ème forme normale   - numéro avion   1,n               1,n -   modèle
    -   modèle
    -   capacité                                   - propriétaire                         -   constructeur
    -   propriétaire                                                                      -   capacité



                                                         e
                       Fig. 17 – Application de la troisi`me forme normale de Boyce-Codd
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                  16


1.3      e
        D´pendances fonctionnelles
         e                           e        e                            e         e           e
    Pour ´tablir efficacement un mod`le entit´s-associations bien normalis´, on peut ´tudier au pr´alable
     e
les d´pendances fonctionnelles entre les attributs puis, les organiser en graphe de couverture minimale.
                                                e                            e
Cette technique est traditionnellement employ´e pour normaliser des sch´mas relationnels, mais elle
             e                                     e
s’applique tr`s bien en amont, au niveau des mod`les conceptuels.

1.3.1     e                  e e
         D´finitions et propri´t´s
                   e
   Un attribut Y d´pend fonctionnellement d’un attribut X si et seulement si une valeur de X induit
une unique valeur de Y . On note une d´pendance fonctionnelle par une fl`che simple : X → Y .
                                      e                                e

   Par exemple, si X est le num´ro de client et Y le nom de client, alors on a bien X → Y . Par contre,
                                e
on a pas Y → X, car plusieurs clients de num´ros diff´rents peuvent porter le mˆme nom.
                                             e       e                          e

    Transitivit´ : si X → Y et Y → Z alors X → Z.
               e

   Par exemple, on a num´ro de commande → num´ro de client → nom de client, donc on a aussi
                          e                           e
num´ro de commande → nom de client. Mais la d´pendance fonctionnelle num´ro de commande → nom
   e                                                 e                           e
de client est dite transitive, car il faut passer par le num´ro de client pour l’obtenir.
                                                            e

    Au contraire, la d´pendance fonctionnelle num´ro de client → nom de client est directe . Seules
                      e                            e
     e                                          e                                    e
les d´pendances fonctionnelles directes nous int´ressent. D’autres exemples sont donn´es dans le tableau 2.


                                   e
                                 d´pendance fonctionnelle                directe ?
                          num´ro de livraison → date de livraison
                               e                                            oui
                        num´ro de livraison → num´ro du fournisseur
                           e                     e                          oui
                        num´ro du fournisseur → nom du fournisseur
                           e                                                oui
                         num´ro de livraison → nom du fournisseur
                             e                                              non

                                                  e
                            Tab. 2 – Exemples de d´pendances fonctionnelles

                                  e
    Un attribut Y peut avoir une d´pendance fonctionnelle qui repose sur la conjonction de plusieurs attri-
                     e                      ee                 e                             ee
buts, auquel cas la d´pendance est dite non ´l´mentaire . Les d´pendances fonctionnelles non ´l´mentaires
         e             e                                                      e           e
sont not´es par une fl`che unique mais comportant plusieurs points d’entr´e (regroup´s autour d’un
cercle).

                           e        e                                    e
    Par exemple, la quantit´ command´e (d’un article dans une commande) d´pend de deux attributs :
       e                          e                                         e
le num´ro de commande et le num´ro d’article (figure 18). Notons que cette d´pendance num´ro de
                                                                                          e
commande + num´ro d’article → quantit´ est ` la fois non ´l´mentaire et directe.
                e                         e    a            ee

                           numéro de commande
                                                             quantité commandée
                                 numéro d’article


                              e                           ee
                   Fig. 18 – D´pendance fonctionnelle non ´l´mentaire, mais directe
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                  17


1.3.2     Graphe de couverture minimale
   En repr´sentant tous les attributs et toutes les d´pendances fonctionnelles directes entre eux, nous
           e                                          e
              e            e
obtenons un r´seau appel´ graphe de couverture minimale. Dans notre exemple sur les clients, les com-
                                          e
mandes et les articles, ce graphe est donn´ sur la figure 19.


                                                  numéro de commande
                                                                                  numéro d’article



                             numéro de client      date de commande                               désignation

                                                                   quantité commandée
             nom du client   adresse du client


                                    Fig. 19 – Graphe de couverture minimale

                                        e        e
    La technique de traduction en un sch´ma entit´s-associations qui suit, suppose qu’aucun attribut n’a
ee       e
´t´ oubli´ sur le graphe de couverture minimal et notamment, aucun identifiant. D’ailleurs toutes les
  e
d´pendances fonctionnelles du graphe doivent partir d’un identifiant. Si ce n’est pas le cas, c’est qu’un
             ee
identifiant a ´t´ omis.

1.3.3                           e        e
          Traduction vers un sch´ma entit´s-associations
    `                                                           e        e                       e
    A partir du graphe de couverture minimale (figure 19), le sch´ma entit´s-associations normalis´ cor-
                   ıt
respondant apparaˆ naturellement (figure 20), en suivant quelques ´tapes simples.
                                                                  e


                                                 numéro de commande
                                                                                  numéro d’article



                             numéro de client      date de commande                              désignation

                                                                  quantité commandée
             nom du client   adresse du client



                                         e
        Fig. 20 – Identification des entit´s et des associations sur un graphe de couverture minimale

    ´                    e
    Etape 1 : il faut rep´rer et souligner les identifiants.

    ´                                                     e
    Etape 2 : puis tous les attributs non identifiant qui d´pendent directement d’un identifiant et d’un
                       e                           u
seul, forment une entit´ (avec l’identifiant, bien sˆr).

   ´                       e          ee
   Etape 3 : ensuite, les d´pendances ´l´mentaires entre les identifiants forment des associations binaires
                   e                       e            e                             a        e
dont les cardinalit´s maximales sont 1 au d´part de la d´pendance fonctionnelle et n ` l’arriv´e.

   ´
   Etape 4 : sauf si entre deux identifiants se trouvent deux d´pendances ´l´mentaires r´flexives 5 , au-
                                                                 e       ee            e
                                                e
quel cas l’association binaire a deux cardinalit´s maximales valant 1.

           a                e                   ee
  5. c’est ` cause de cette ´tape 4 qu’il est pr´f´rable de ne pas traduire directement le graphe de couverture minimale en
un sch´ma relationnel, cf. les commentaires de la r`gle 4 page 25
      e                                              e
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                            18


   ´                                                    e
   Etape 5 : enfin, les attributs (non identifiants) qui d´pendent de plusieurs identifiants sont les attri-
                            e                            e
buts d’une association suppl´mentaire dont les cardinalit´s maximales sont toutes n.

                                                                          e        e
   La traduction du graphe de couverture minimale de la figure 20 en un sch´ma entit´s-associations
        e         e
normalis´ est donn´e sur la figure 21.


                                                             commandes                             articles
                                   passer
                                                  1,1      - n° commande                     - numéro article
                                                           - date commande                   - désignation
                                     1,n

                                   clients                          1,n                            0,n
                            -   numéro client                                   concerner
                            -   nom client
                                                                          - quantité
                            -   prénom
                                                                            commandée
                            -   adresse client


                 e        e                       e        a
    Fig. 21 – Sch´ma entit´s-associations normalis´ obtenu ` partir du graphe de couverture minimale

                                                                   e
    Dans ce genre de traduction, il faut donner un nom aux entit´s et aux associations, car ce n’est pas
                                                                      e            ae
le cas sur le graphe de couverture minimale et il reste les cardinalit´s minimales ` ´tablir.

                   e                  e e            ea       ıtre        e         e            e
    Remarquons ´galement qu’en r´alit´, il faut d´j` connaˆ les entit´s en pr´sence pour ´tablir cor-
rectement le graphe de couverture minimale, ne serait-ce que pour y faire figurer leurs identifiants. Donc
                                                   e                                   e
finalement, cette technique n’est une aide pour ´tablir les associations entre les entit´s et pour normaliser
         e                                        e
les entit´s et leurs associations (jusqu’en troisi`me forme normale de Boyce-Codd).

1.3.4                                   e
          Gestion des dates et du caract`re historique
                     e
    Dans une biblioth`que, on peut vouloir stocker les emprunts en cours (figure 22) et/ou les emprunts
                                                                         e                            e
historiques (figure 23). Pour les emprunts en cours, la date de retour pr´vu est un attribut de l’entit´

    numéro de livre
                                                                                    livres
                                                                                                                            membres
                                                                           -   n° livres                 emprunts en
                                                             traduction    -   titre                 0,1   cours       0,n - n° membre
titre    date d’                  numéro de membre                         -   date d’emprunt                              - nom
                      date de
        emprunt                                                            -   date retour prévu                           - adresse
                   retour prévu

                                    nom          adresse


                                                                                       e
                                Fig. 22 – Sans historisation des emprunts, pas de probl`me

                                                                                         e
livres car un livre ne peut faire l’objet que d’un seul emprunt en cours. Dans ce cas, l’´tablissement du
graphe de couverture minimal ne pose aucun probl`me.e
1         `                     ´
       MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                              19


    Par contre, un livre peut faire l’objet de plusieurs emprunts historiques et dans ces conditions, la date
                 e
d’emprunt est d´terminante pour connaˆ      ıtre la date de retour pr´vue (figure 23 en haut ` gauche). Or
                                                                     e                        a
une date n’est pas un identifiant    6 et une d´pendance fonctionnelle ne peut partir que d’un ou plusieurs
                                               e
                                                                  e                                a
identifiant(s). C’est le signe qu’il manque un identifiant : le num´ro d’emprunt (figure 23 en haut ` droite).


       numéro de livre           date d’emprunt                                           numéro de livre                 date d’emprunt

                                                                                                            numéro d’emprunt
                                                                    correction

    titre                  date de       numéro de membre                          titre                    date de    numéro de membre
               date de                                                                        date de
                            retour                                                                           retour
            retour prévu                                                                   retour prévu
                           effectif                                                                         effectif
                                          nom      adresse                                                               nom     adresse
                                                                                      n
                                                                                  ctio
                                                                          t   radu


                                                            emprunts historiques                                       membres
                  livres                                -   numéro d’emprunt                      avoir
                                      concerner                                                 effectuer      0,n - n° membre
                - n° livre 0,n                    1,1   -   date d’emprunt                1,1
                                                                                                                   - nom
                - titre                                 -   date de retour prévu                                   - adresse
                                                        -   date retour effectif


               e                 e         e                 e
    Fig. 23 – Mˆme pour une entit´ historis´e, il vaut mieux ´viter que la date n’entre dans l’identifiant

                       e                               e                      ıt    e
   Notons que l’entit´ emprunts historiques suppl´mentaire qui apparaˆ apr`s traduction (figure 23
                      e             e
en bas) ne peut pas ˆtre transform´e en une association comme on pourrait le croire au simple examen
              e                                                                   e              e
des cardinalit´s qui l’entourent. En effet, les attributs de l’association qui en r´sulterait ne v´rifieraient
                                                                                                  e
pas la normalisation des attributs des associations. Notamment, la date de retour effectif ne d´pend pas
        e                      e                              e
du num´ro de livre et du num´ro de membre, mais du num´ro de livre et de la date d’emprunt.

    La normalisation des entit´s ne s’applique donc pas aux entit´s qui ont un caract`re historique. A
                               e                                    e                     e               `
                                     e                 e e e                               e
moins que les dates ne soient regroup´es dans une entit´ s´par´e, ce qui n’est pas conseill´ tant qu’aucune
              e                             e e e                           e
information li´e aux dates (comme le caract`re f´ri´, par exemple) n’est n´cessaire.




                        e                                                                    e    e
     6. Si on suit le pr´cieux conseil de n’utiliser que des entiers arbitraires et auto-incr´ment´s comme identifiant.
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                                    20


1.3.5    e                         e
        D´pendances plurielles et r´flexives
                       e                                                                     e
    Une ou plusieurs d´pendances fonctionnelles peuvent partir ou arriver plusieurs fois du mˆme attri-
                                              e
but. Pour clarifier la signification de chaque d´pendance fonctionnelle, on peut ajouter un commentaire
        e                                            a
sur la fl`che (figure 24). Ce commentaire sert ensuite ` donner un nom aux associations correspondantes.


                                                                                                             père mère
                          médecin remplacé
numéro de médecin                                      numéro de remplacement
                                                                                                        numéro personnel
                          médecin remplaçant

nom         adresse                                      date de       date de
        professionnelle                                   début          fin                           nom          prénom

                               e
                          (a) d´pendances plurielles                                               e           e
                                                                                              (b) d´pendances r´flexives



                                          e                                e
                               Fig. 24 – D´pendances fonctionnelles comment´es

         e                                                 e
    Les d´pendances fonctionnelles plurielles entre les m´decins et le remplacements (figure 24(a)) de-
              e                                                        e e
viennent, apr`s traduction, des associations plurielles entre les entit´s m´decins et remplacements. No-
                e                       e ee                       e
tons que l’entit´ remplacements ainsi g´n´r´e, a aussi un caract`re historique.

    Les fonctionnelles r´flexives (X → X), quoique toujours vraies, ne pr´sentent aucun int´rˆt, ` moins
                         e                                               e                 ee a
                                         e                    e          e
qu’elles aient une signification particuli`re. Un exemple de d´pendance r´flexive licite sur un graphe de
                                                                                             (
couverture minimale est la d´pendance fonctionnelle personne → personne, lorsqu’elle signifie ( diriger )),
                             e
(e                     )    (e                          )
( ˆtre en couple avec ) ou ( ˆtre le p`re ou la m`re de ) (figure 24(b)).
                                      e          e

             e               e
   Dans le mˆme ordre d’id´e, il est inutile de faire figurer sur le graphe de couverture minimal des
 e                             ee
d´pendances fonctionnelles non ´l´mentaires vraies, mais idiotes, comme par exemple num´ro de commande
                                                                                       e
+ num´ro d’article → num´ro de commande.
     e                       e

1.3.6   Associations sans attributs
                                   e                       e
   La lacune majeure de cette m´thode reste tout de mˆme le fait que les associations dont toutes les
          e
cardinalit´s maximales sont n mais qui sont sans attribut ne figurent pas sur le graphe de couverture
minimale. Il faut alors, soit leur inventer temporairement un attribut (comme pour la normalisation
                                                                e                         e
des attributs des associations), soit introduire une notation sp´ciale (par exemple, une d´pendance non
ee                   e
´l´mentaire qui ne d´bouche sur aucun attribut).

                       e
    Pour illustrer ce d´faut, prenons l’exemple des films et des acteurs (figure 25). Il n’y a pas d’attribut

numéro de film                 numéro d’acteur                            films                                 acteurs
                                                          traduction                      jouer dans
                                                                        - n° film   0,n                0,n - numéro acteur
                                                                        - titre                            - nom de scène
titre     durée      nom de scène         date de naissance             - durée                            - date naissance


                             e             ee
Fig. 25 – Utilisation d’une d´pendance non ´l´mentaire et sans enfant sur un graphe de couverture
minimal
      e      a               e                    e           a
qui d´pende ` la fois du num´ro de film et du num´ro d’acteur (` moins d’imaginer le temps d’apparition
a e                                    e                                           a a        e
` l’´cran). Et pourtant, les deux entit´s films et acteurs sont en association. Grˆce ` la d´pendance
     ee
non ´l´mentaire et sans enfant, on peut rendre compte de cette situation sur le graphe de couverture
                               ıtre                     e        e
minimale et faire ainsi apparaˆ l’association sur le sch´ma entit´s-associations qui en est traduit.
1      `                     ´
    MODELE CONCEPTUEL DE DONNEES (MCD)                                                                     21


1.4     e
       M´thodologie de base
         a                     e          a            e    e e            a
   Face ` une situation bien d´finie (soit ` travers un ´nonc´ pr´cis, soit ` travers une collection de for-
                e                       e                          e
mulaires ou d’´tats que le nouveau syst`me d’information est cens´ remplacer), nous pouvons proc´der  e
     e
sans ´tablir le graphe de couverture minimale :


                         e       e
    – identifier les entit´s en pr´sence ;
    – lister leurs attributs ;
                                    e                        e    e
    – ajouter les identifiants (num´ro arbitraire et auto-incr´ment´) ;

      e                                                e
    – ´tablir les associations binaires entre les entit´s ;
    – lister leurs attributs ;

                             e
    – calculer les cardinalit´s ;

       e           e                                                                   e         a
    – v´rifier les r`gles de normalisation et en particulier, la normalisation des entit´s (c’est ` ce stade
      qu’apparaissent les associations non binaires), des associations et de leurs attributs ainsi que la
            e
      troisi`me forme normale de Boyce-Codd ;
                                e
    – effectuer les corrections n´cessaires.


                                                         e          e
    Mais, il est parfois plus intuitif d’en passer par l’´tude des d´pendances fonctionnelles directes :


                         e       e                                       e                          e    e
    – identifier les entit´s en pr´sence et leur donner un identifiant (num´ro arbitraire et auto-incr´ment´) ;
                                                  e
    – ajouter l’ensemble des attributs et leur d´pendances fonctionnelles directes avec les identifiants (en
               c               e            ee
      commen¸ant par les d´pendances ´l´mentaires) ;
                                                                      e       e
    – traduire le graphe de couverture minimale obtenu en un sch´ma entit´s-associations ;
                             e
    – ajuster les cardinalit´s minimales et ;

      a                     e      e                                 e    e e                         e
    – ` ce stade, la majorit´ des r`gles de normalisation devraient ˆtre v´rifi´es, il reste tout de mˆme
                                      e
      la normalisation des noms, la pr´sence d’attributs en plusieurs exemplaires et d’associations redon-
                                          a
      dantes ou en plusieurs exemplaires, ` corriger.


                   e         a                    e        e                     a
    Il faut garder ´galement ` l’esprit que le mod`le doit ˆtre exhaustif (c’est-`-dire contenir toutes les
                e            e
informations n´cessaires) et ´viter toute redondance qui, on ne le dira jamais assez, constitue une perte
                 e                                                             e
d’espace, une d´multiplication du travail de maintenance et un risque d’incoh´rence.

    Il faut par ailleurs veiller ` ´liminer les synonymes (plusieurs signifiants pour un signifi´, exemple :
                                 ae                                                           e
                                             e                    e                                    e
nom, patronyme, appellation) et les polys`mes (plusieurs signifi´s pour un signifiant, exemples : qualit´,
statut).

                               e                         e               a
   Il va de soi que cette m´thodologie ne doit pas ˆtre suivie pas-`-pas une bonne fois pour toute. Au
                     e                       e                           e                          e
contraire, il faut it´rer plusieurs fois les ´tapes successives, pour esp´rer converger vers une mod´lisation
pertinente de la situation.
2      `                  ´
    MODELE LOGIQUE DE DONNEES (MLD)                                                                   22


2        e                  e
      Mod`le logique de donn´es (MLD)
                                 e                                e         e
    Maintenant que le MCD est ´tabli, on peut le traduire en diff´rents syst`mes logiques et notamment
                 e                                                     e           e
les bases de donn´es relationnelles qui proposent une vision plus concr`te pour mod´liser la situation.

2.1         e
        Syst`mes logiques
                                e                              e
     Avant l’apparition des syst`mes de gestion de base de donn´es (SGBD ou DBMS pour Data Base
                                e e            e                               ee
Management System), les donn´es ´taient stock´es dans des fichiers binaires et g´r´es par des programmes
   e           e       e
ex´cutables (d´velopp´s en Basic, Cobol ou Dbase, par exemple). [Gabay] propose ` ce sujet une traduc-
                                                                                   a
tion d’un MPD vers un MLD fichier. Mais la maintenance des programmes (en cas de modification de la
                    e               e      e       e
structure des donn´es, notamment) ´tait tr`s probl´matique.

                                   e                                  e             e
    Sont alors apparus les SGBD hi´rarchiques dans lesquels les donn´es sont organis´es en arbre (IMS-
                                             e                             e              e
DL1 d’IBM, par exemple), puis les SGBD r´seaux dans lesquels les donn´es sont organis´es selon un
              e e
graphe plus g´n´ral (IDS2 de Bull, par exemple). [Matheron, Nanci et al., Gabay] d´crivent la traduc-
                                                                                    e
                                                       e    e
tion d’un MPD vers un MLD Codasyl (base de donn´es r´seaux). Ces deux types de SGBD sont dit
                                                   a                     ıtre               e
navigationnels car on peut retrouver l’information ` condition d’en connaˆ le chemin d’acc`s.

                                           e
    Aujourd’hui, ils sont largement remplac´s par les SGBD relationnels (SGBDR) avec lesquels l’infor-
            e                          e         e
mation peut ˆtre obtenue par une requˆte formul´e dans un langage quasiment naturel (la langage SQL
                                                            e
pour Structured Query Langage). Parmi les SGBDR les plus r´pandus nous trouvons Oracle, SQL Server
                                                   e                 e
et DB2. Nous nous contentons ici d’exposer le mod`le logique de donn´es relationnel (MLDR).

          e                              e
    Plus r´cemment, sont apparus le mod`le logique orient´ objet et mˆme des SGBD orient´s objets.
                                                         e            e                     e
                                            e                                                 e
Pourtant, les SGBD relationnels restent extrˆmement majoritaires, tandis que l’approche orient´ objet
                       e     e                                                    e            e
est parfaitement adapt´e au d´veloppement d’applications clientes dynamiques et li´es aux donn´es du
    e
syst`me d’information.

2.2        e
        Mod`le logique relationnel
                      e
    Concentrons-nous d´sormais sur le MLDR.

2.2.1    Tables, lignes et colonnes
                       e            e
    Lorsque des donn´es ont la mˆme structure (comme par exemple, les renseignements relatifs aux
clients), on peut les organiser en table dans laquelle les colonnes d´crivent les champs en commun et les
                                                                     e
lignes contiennent les valeurs de ces champs pour chaque enregistrement (tableau 3).


                            e
                         num´ro client   nom           e
                                                   pr´nom     adresse
                               1         Dupont    Michel     127, rue...
                               2         Durand    Jean       314, boulevard...
                               3         Dubois    Claire     51, avenue...
                               4         Dupuis    Marie      2, impasse...
                              ...        ...       ...        ...

                                                            e                    e
         Tab. 3 – Contenu de la table clients, avec en premi`re ligne les intitul´s des colonnes


2.2.2      e                 e e      e
         Cl´s primaires et cl´s ´trang`res
                                     e                                                              a
    Les lignes d’une table doivent ˆtre uniques, cela signifie qu’une colonne (au moins) doit servir ` les
                             e
identifier. Il s’agit de la cl´ primaire de la table.
2      `                  ´
    MODELE LOGIQUE DE DONNEES (MLD)                                                                        23


                                    e                        e            e
    L’absence de valeur dans une cl´ primaire ne doit pas ˆtre autoris´e. Autrement dit, la valeur vide
                                                    e                                e
(NULL) est interdite dans une colonne qui sert de cl´ primaire, ce qui n’est pas forc´ment le cas des autres
                                         e             e a
colonnes, dont certaines peuvent ne pas ˆtre renseign´es ` toutes les lignes.

                               e
    De plus, la valeur de la cl´ primaire d’une ligne ne devrait pas, en principe, changer au cours du temps.

    Par ailleurs, il se peut qu’une colonne Colonne1 d’une table ne doive contenir que des valeurs prises
                                                                   e
par la colonne Colonne2 d’une autre table (par exemple, le num´ro du client sur une commande doit
               a               e                               e
correspondre ` un vrai num´ro de client). La Colonne2 doit ˆtre sans doublons (bien souvent il s’agit
        e
d’une cl´ primaire). On dit alors que la Colonne1 est cl´ ´trang`re et qu’elle r´f´rence la Colonne2.
                                                        ee       e              ee

                                      e                         e e          e e      e           e
    Par convention, on souligne les cl´s primaires et on fait pr´c´der les cl´s ´trang`res d’un di`se # dans
la description des colonnes d’une table :

    clients(num´ro client, nom client, pr´nom, adresse client)
               e                         e
                 e                                   e
    commandes(num´ro commande, date de commande, #num´ro client (non vide))

    Remarques :
            e                                 e e       e                       e            e
    – une mˆme table peut avoir plusieurs cl´s ´trang`res mais une seule cl´ primaire (´ventuellement
              e
      compos´es de plusieurs colonnes) ;
                     ee      e              e                         e
    – une colonne cl´ ´trang`re peut aussi ˆtre primaire (dans la mˆme table) ;
            ee       e        e
    – une cl´ ´trang`re peut ˆtre compos´e (c’est le cas si la cl´ primaire r´f´renc´e est compos´e) ;
                                          e                      e           ee     e              e
                                                          e
    – implicitement, chaque colonne qui compose une cl´ primaire ne peut pas recevoir la valeur vide
      (NULL interdit) ;
                                   ee       e                                                          e
    – par contre, si une colonne cl´ ´trang`re ne doit pas recevoir la valeur vide, alors il faut le pr´ciser
      dans la description des colonnes.

                   e                                         ee      e
    Les SGBDR v´rifient au coup par coup que chaque cl´ ´trang`re ne prend pas de valeurs en dehors
            ea                                          ee             e
de celles d´j` prises par la ou les colonne(s) qu’elle r´f´rence. Ce m´canisme qui agit lors de l’insertion,
                                   a
de la suppression ou de la mise ` jour de lignes dans les tables, garantit ce que l’on appelle l’int´grit´
                                                                                                      e    e
 ee                    e
r´f´rentielle des donn´es.

2.2.3      e
        Sch´ma relationnel
                   e                                       e                             e
    On peut repr´senter les tables d’une base de donn´es relationnelle par un sch´ma relationnel dans
lequel les tables sont appel´es relations et les liens entre les cl´s ´trang`res et leur cl´ primaire est sym-
                            e                                      e e      e              e
     e
bolis´ par un connecteur (figure 26).


                                       clients                 commandes
                                -   numéro client            - n° commande
                                -   nom client               - date commande
                                -   prénom                   - #numéro client
                                -   adresse client             (non vide)


                                       e
                          Fig. 26 – Sch´ma relationnel simple entre deux tables

    Certains ´diteur inscrivent sur le connecteur un symbole 1 cˆt´ cl´ primaire et un symbole ∞ cˆt´
             e                                                   oe e                                oe
  e e     e    a                                     ea e
cl´ ´trang`re (` condition que celle-ci ne soit pas d´j` cl´ primaire). Il faut prendre garde avec cette
convention, car le symbole ∞ se trouve du cˆt´ oppos´ ` la cardinalit´ maximale n correspondante.
                                             oe       ea              e
2        `                  ´
      MODELE LOGIQUE DE DONNEES (MLD)                                                                        24


2.3      Traduction d’un MCD en un MLDR
                                                                 e
      Pour traduire un MCD en un MLDR, il suffit d’appliquer cinq r`gles.

                                                                     e      e
      Notations : on dit qu’une association binaire (entre deux entit´s ou r´flexive) est de type :
                  a                                   e
      – 1 : 1 (un ` un) si aucune des deux cardinalit´s maximales n’est n ;
                  a                                      e
      – 1 : n (un ` plusieurs) si une des deux cardinalit´s maximales est n ;
                         a                                  e
      – n : m (plusieurs ` plusieurs) si les deux cardinalit´s maximales sont n.

                    e                                 e
   En fait, un sch´ma relationnel ne peut faire la diff´rence entre 0,n et 1,n. Par contre, il peut la faire
                   e
entre 0,1 et 1,1 (r`gles 2 et 4).

     e                    e
   R`gle 1 : toute entit´ devient une table dans laquelle les attributs deviennent les colonnes. L’identi-
               e                      e
fiant de l’entit´ constitue alors la cl´ primaire de la table.

      Par exemple, l’entit´ articles de la figure 13 devient la table :
                          e

      articles(num´ro article, d´signation, prix unitaire de vente)
                  e             e

      e                                                      ıt,                  ee      e
    R`gle 2 : une association binaire de type 1 : n disparaˆ au profit d’une cl´ ´trang`re dans la table
 oe                   ee            e                                   ee      e
cˆt´ 0,1 ou 1,1 qui r´f´rence la cl´ primaire de l’autre table. Cette cl´ ´trang`re ne peut pas recevoir la
                            e
valeur vide si la cardinalit´ est 1,1.

      Par exemple, l’association livrer de la figure 13 est traduite par :

      fournisseurs(n◦ fournisseur, nom contact, n◦ t´l´phone contact)
                                                    e e
      livraisons(n◦ livraison, date de livraison, nom livreur, #n◦ fournisseur (non vide))


                                                                                                livraisons
      fournisseurs                           livraisons                   fournisseurs
                                                                                            - n° livraison
    - n° fournisseur         livrer       - n° livraison                - n° fournisseur
                       1,n            1,1 - date de        traduction                       - date de
    - nom contact                                                       - nom contact
                                                                                              livraison
    - n° téléphone                          livraison                   - n° téléphone
                                                                                            - nom livreur
      contact                             - nom livreur                   contact
                                                                                            - #n° fournisseur
                                                                                              (non vide)


                               Fig. 27 – Traduction d’une association de type 1 : n

    Il ne devrait pas y avoir d’attribut dans une association de type 1 : n, mais s’il en reste, alors ils
                        oe
glissent vers la table cˆt´ 1.
2      `                  ´
    MODELE LOGIQUE DE DONNEES (MLD)                                                                                       25


      e                                                                        e
    R`gle 3 : une association binaire de type n : m devient une table suppl´mentaire (parfois appel´e   e
                                                                        e                      e
table de jonction, table de jointure ou table d’association) dont la cl´ primaire est compos´e de deux
  e e       e         ee                    e
cl´s ´trang`res (qui r´f´rencent les deux cl´s primaires des deux tables en association). Les attributs de
l’association deviennent des colonnes de cette nouvelle table.

                                                                                          e
   Par exemple, l’association concerner (1) de la figure 13 est traduite par la table suppl´mentaire
lignes de commande :

    lignes de commande(#n◦ commande, #n◦ article, quantit´ command´e)
                                                         e        e


       commandes
    - n° commande
    - date commande

           1,n
                                                                                     lignes de
      concerner (1)                                             commandes           commandes
                                      traduction              - n° commande       - #n° commande           articles
    - quantité
      commandée                                               - date commande     - #n° article       - numéro article
                                                                                  - quantité          - désignation
                                                                                    commandée         - prix unitaire
           0,n
                                                                                                        de vente
         articles
    - numéro article
    - désignation
    - prix unitaire
      de vente


                                Fig. 28 – Traduction d’une association de type n : m

      e
    R`gle 4 : une association binaire de type 1 : 1 est traduite comme une association binaire de type 1 : n
              ee      e                                            e              e
sauf que la cl´ ´trang`re se voit imposer une contrainte d’unicit´ en plus d’une ´ventuelle contrainte de
           e                          e         a
non vacuit´ (cette contrainte d’unicit´ impose ` la colonne correspondante de ne prendre que des valeurs
distinctes).

                            o         eee       e                                       oe               e
    Si les associations fantˆmes ont ´t´ ´limin´es, il devrait y avoir au moins un cˆt´ de cardinalit´ 0,1.
                              oe        e                    ee      e                 oe                     e
C’est alors dans la table du cˆt´ oppos´ que doit aller la cl´ ´trang`re. Si les deux cˆt´s sont de cardinalit´
               ee      e        e         e       e
0,1 alors la cl´ ´trang`re peut ˆtre plac´e indiff´remment dans l’une des deux tables.

    Par exemple, l’association diriger de la figure 29 est traduite par :

    services(n◦ service, nom service, #num´ro employ´ (non vide, unique))
                                          e         e
          e     e         e
    employ´s(num´ro employ´s, nom)


                                                                                                         services
                                                                                                   - n° service
      employés                                     services                         employés       - nom service
                            diriger
    - n° employé      0,1                1,1 - n° service            traduction   - n° employé     - #n° employé
    - nom                                    - nom service                        - nom              (unique, non vide)



                                 Fig. 29 – Traduction d’une association de type 1 : 1
2      `                  ´
    MODELE LOGIQUE DE DONNEES (MLD)                                                                       26


        e e         e            e             e
   En r´alit´, la r`gle 4 propos´e ici consid`re qu’une association binaire de type 1 : 1 correspond `    a
                                               e                             a
une association binaire de type 1 : n particuli`re. Une alternative consiste ` voir une association binaire
                                                                      e
de type 1 : 1 comme une association binaire de type n : m particuli`re. Il suffit pour cela d’ajouter une
                   e                   e e       e                                 e
contrainte d’unicit´ sur chacune des cl´s ´trang`res de la table de jonction suppl´mentaire :

    services(n◦ service, nom service)
    directions(#n◦ service (unique), #num´ro employ´ (unique)
                                         e         e
          e     e         e
    employ´s(num´ro employ´s, nom)


                                                    directions                services
                               employés       - #n° service (unique)    - n° service
                             - n° employé     - #n° employé (unique)    - nom service
                             - nom


                         Fig. 30 – Traduction alternative d’une association de type 1 : 1

                                                                                           e
    Mais rien ne garantit, dans cette traduction alternative (figure 30), qu’un service poss`de un dirigeant,
                                      e                                     ee
alors que c’est obligatoire. La premi`re traduction (figure 29) est donc pr´f´rable.

                                                         e               e
    Remarque : d’autres techniques sont parfois propos´es pour cette r`gle 4 (fusionner les tables, utiliser
      e                                     e e      e     e
une cl´ primaire identique, utiliser deux cl´s ´trang`res r´flexives) mais elles ne sont pas exploitables dans
        e e
le cas g´n´ral.

      e                                                                   e                   e
    R`gle 5 : une association non binaire est traduite par une table suppl´mentaire dont la cl´ primaire
           e                e e      e               e
est compos´e d’autant de cl´s ´trang`res que d’entit´s en association. Les attributs de l’association de-
viennent des colonnes de cette nouvelle table.

    Par exemple, l’association projeter de la figure 8 devient la table :

    projections(#n◦ film, #n◦ salle, #n◦ cr´neau, tarif)
                                           e

                                                                        créneaux horaires
         créneaux horaires                                             - n° créneau
        - n° créneau                                                   - date
        - date                                                         - heure de début
        - heure de début

                0,n
                                                                              projections     films
             projeter             films
                                                                          -   #n° film      - n° film
                            0,n - n° film            traduction           -   #n° salle     - titre
           - tarif              - titre                                                     - durée
                                                                          -   #n° créneau
                                - durée                                   -   tarif
                0,n

               salles                                                            salles
            - n° salle                                                        - n° salle
            - capacité                                                        - capacité


                                 Fig. 31 – Traduction d’une association ternaire
3      `                   ´
    MODELE PHYSIQUE DE DONNEES (MPD)                                                                        27


3        e                   e
      Mod`le physique de donn´es (MPD)
             e               e             e                   e         e                  e
   Un mod`le physique de donn´es est l’impl´mentation particuli`re du mod`le logique de donn´es par
un logiciel.

3.1   Distinction entre MLD et MPD
                                        a                  e
    La traduction d’un MLD conduit ` un MPD qui pr´cise notamment le stockage de chaque donn´e `        e a
                                                                           e
travers son type et sa taille (en octets ou en bits). Cette traduction est ´galement l’occasion d’un certain
                 e                             e
nombre de libert´s prises par rapport aux r`gles de normalisation afin d’optimiser les performances du
    e
syst`me d’information.

                                                        e                    e
   La traduction d’un MLD relationnel en un mod`le physique est la cr´ation (par des requˆtes SQL e
                                                                   e     e     e
de type CREATE TABLE et ADD CONSTRAINT) d’une base de donn´es h´berg´e par un SGBD relationnel
particulier. Il peut s’agir d’une base Oracle, d’une base SQL Server, d’une base Access ou d’une base DB2,
                                                               e         e                 e
par exemple. Le fait que tous les SGBDR reposent sur le mˆme mod`le logique (le sch´ma relationnel)
        a                                                ee e
permet ` la fois la communication entre des bases h´t´rog`nes et la conversion d’une base de donn´es   e
                 a
d’une SGBDR ` l’autre.

3.2   Optimisations
                                                                            e                      e
    L’optimisation des performances en temps de calcul se fait toujours au d´triment de l’espace m´moire
          e                       e                     e                a e
consomm´. Dans le pire des cas, r´duire les temps de r´ponse consiste ` d´normaliser volontairement le
    e                                               e                  e
syst`me d’information, avec tous les risques d’incoh´rence et les probl`mes de gestion que cela comporte.

                             e                                          a     ee             e
    Pour les bases de donn´es relationnelles, l’optimisation qui vise ` acc´l´rer les requˆtes peut passer
par :
                                                                   e                 e e      e
   – l’ajout d’index aux tables (au minimum sur les colonnes cl´s primaires et cl´s ´trang`res) ; ces index
                                    e           e                                e
      consomment de l’espace m´moire suppl´mentaire, mais la base de donn´es reste normalis´e ;     e
                                  e                                       e                      u
   – l’ajout de colonnes calcul´es ou de certaines redondances pour ´viter des jointures coˆteuses (au-
                               e         e                         a               e
      quel cas la base est d´normalis´e) ; il faut alors veiller ` ce que la coh´rence entre les colonnes
                   e                             e                                                       e
      soit respect´e, soit par l’utilisation de d´clencheurs, soit dans les applications clientes du syst`me
      d’information ;
                                                e                e                  e e      e
   – la suppression des contraintes d’unicit´, de non vacuit´ ou encore de cl´ ´trang`re (auquel cas,
           e    e          e          e       e                             e
      l’int´grit´ des donn´es doit ˆtre assur´e par le code client du syst`me d’information).

                                                         e             e
    Par exemple, la table commandes de la figure 28 peut ˆtre supprim´e et la date de commande est
           e a                                                a          e
alors ajout´e ` la table lignes de commandes. On renonce donc ` la troisi`me forme normale (figure 32)

      commandes
    - n° commande
    - date commande
                                                                        lignes de
                                                                       commandes
       lignes de                                                  -   n° commande             articles
      commandes               articles          dénormalisation   -   #n° article        - numéro article
    - #n° commande       - numéro article                         -   date commande      - désignation
    - #n° article        - désignation                            -   quantité           - prix unitaire
    - quantité           - prix unitaire                              commandée            de vente
      commandée            de vente


                                                           e
                            Fig. 32 – Sacrifice de la troisi`me forme normale
4    ´
    RETRO-CONCEPTION                                                                                       28


                                    e ee
puisque la date de commande est r´p´t´e autant de fois qu’il y a de lignes dans la commande, mais on
e                          u                                      e
´vite ainsi une jointure coˆteuse en temps de calcul lors des requˆtes SQL.

                         e              e
    Le conseil le plus pr´cieux, en mati`re d’optimisation, est de ne jamais optimiser a priori, mais toujours
                    a          e      a                                                     e
a posteriori, c’est-`-dire en r´ponse ` une lenteur que le SGBDR n’est pas capable de r´soudre tout seul.
Il faut alors mesurer le gain de toute optimisation manuelle en effectuant des tests (chronom´trages    e
          e                            e                       ee
avant/apr`s) sur un volume de donn´es significatif et de pr´f´rence en exploitation.


4      e
      R´tro-conception
                      e                                                   e                     a e
    Dans la majorit´ des cas, le travail du concepteur de bases de donn´es consiste non pas ` cr´er une
               e                     o a             e                                               e
base de donn´es ex nihilo, mais plutˆt ` corriger ou ´tendre une base existante. Dans ce cas, la mati`re de
                           e                   e
travail initiale est un mod`le physique et la m´thode de r´tro-conception ou reverse engineering consiste
                                                           e
a                               e                                                              e
` traduire ce MPD en un mod`le conceptuel, modifier le MCD obtenu puis modifier le mod`le physique
        e
en cons´quence.

4.1   Traduction inverse
                                       e                                          e
    Dans le cadre des bases de donn´es relationnelles, il faut convertir le mod`le physique en un sch´ma  e
                     e       e                           e
relationnel normalis´ (en d´tricotant les optimisations ´ventuelles et en renommant les colonnes des tables
                     e             e                     e                                 e
pour assurer l’unicit´ et le caract`re explicite (non cod´) des noms), puis appliquer les r`gles de traduction
de la section 2.3 dans le sens inverse.

     ´                                 e                                ee       e                    e
    Etape 1 : chaque table dont la cl´ primaire ne contient pas de cl´ ´trang`re devient une entit´ dont
                      e
l’identifiant est la cl´ primaire de la table et dont les attributs sont les colonnes de la table qui ne sont
       ee      e
pas cl´ ´trang`re.

    ´                                    e                      e                       e e
    Etape 3 : chaque table dont la cl´ primaire est compos´e exclusivement de cl´s ´trang`res qui e
 ee                     e
r´f´rencent plusieurs cl´s primaires, devient une association autour de laquelle toutes les cardinalit´s e
maximales valent n, c’est-a-dire soit une association binaire de type n : m soit une association ternaire
                                   e e      e
ou plus (les autres colonnes non cl´s ´trang`res de la table deviennent des attributs de l’association).

    ´                        e e      e
    Etape 5 : les colonnes cl´s ´trang`res restantes deviennent des associations binaires de type 1 : n s’il
                                e                                                  e
n’y a pas de contrainte d’unicit´ ou de type 1 : 1 s’il y a une contrainte d’unicit´ (il faut trouver un nom
a
` cette association).

   ´                      e                            e e      e                            e
   Etape 6 : la cardinalit´ minimale vaut 1 pour les cl´s ´trang`res qui font partie d’une cl´ primaire
           e
ou qui poss`dent une contrainte (non vide), sinon elle vaut 0.
4    ´
    RETRO-CONCEPTION                                                                                      29


4.2   Cas particuliers
                                  e                                                 e
    Malheureusement, ces quatres ´tapes ne suffisent pas pour traduire tous les sch´mas relationnels pos-
                                              e                        e           e
sibles. Notamment, les tables de la figure 33 n´cessitent l’insertion d’´tapes suppl´mentaires.



                                       chèques
                                   - #n° règlement
                                   - n° chèque
             règlements            - nom banque                      parcours               trous
          - n° règlement
          - date règlement                                        - n° parcours        - #n° parcours
                                    paiements par carte           - nom parcours       - n° trou dans
          - montant
                                   - #n° règlement                                       parcours
                                   - n° carte                                          - par
                                   - date d’expiration                                 - distance

                  e                       a
            (a) cl´ sur une colonne, mais ` la fois pri-                 e                 e
                                                                   (b) cl´ primaire compos´e partiel-
                      e     e
            maire et ´trang`re                                                 ee      e
                                                                   lement de cl´ ´trang`re



                                                         e        e
                               Fig. 33 – Tables particuli`res en r´tro-conception

    ´
    Etape 2 : chaque table dont la cl´ primaire est compos´e exclusivement de cl´s ´trang`res qui
                                        e                       e                      e e      e
 ee                     e                                 e
r´f´rencent une seule cl´ primaire, devient une sous-entit´ ou une sous-association (les autres colonnes
      e e      e                                                            e
non cl´s ´trang`res de la table deviennent des attributs de cette sous-entit´).

    ´                                   e                     e                      e e       e
    Etape 4 : chaque table dont la cl´ primaire est compos´e partiellement de cl´s ´trang`res provient
                                     e                                                                      e
soit d’une optimisation qu’il faire d´faire (comme sur la figure 32) soit d’un identifiant relatif d’une entit´
comme dans la section 5.2 (auquel cas les autres colonnes non cl´s ´trang`res de la table deviennent des
                                                                  e e       e
                        e
attributs de cette entit´).
5        ´
    COMPLEMENTS                                                                                             30


5          e
      Compl´ments
                             e                          e                      e e
    Aucune situation compl`te, ou presque, ne peut ˆtre parfaitement mod´lis´e si le concepteur se
                           e        e a
contente des fonctionnalit´s abord´es ` ce stade du document. Ne serait-ce que pour comprendre l’´la-  e
                                             e                                                        e
boration des tables de la figure 33, il est n´cessaire d’introduire de nouvelles notations sur le sch´ma
     e                                                 e     e
entit´s-associations. Les trois extensions majeures pr´sent´es dans cette section font partie de la ver-
                                                                                      e
sion 2 de Merise [Panet et al.]. Elles permettent de traiter davantage de situations r´elles et souvent de
     e
mani`re plus simple.

                                              e                      ae            e
    Dans cette section, nous reprenons la d´marche qui consiste ` ´tudier les d´pendances fonctionnelles
                                                        a                           e         e
directes sur le graphe de couverture minimale, puis ` traduire ce graphe en sch´ma entit´s-associations,
                                 e                                     e
pour obtenir finalement un sch´ma relationnel. Les notions abord´es ici ne permettent plus au sch´ma      e
              e    e                                  ıt´                               ıt´
relationnel d’ˆtre ´crit textuellement sans ambigu¨ e. Afin de lever toute ambigu¨ e pour savoir quelle
  e               ee     e
cl´ primaire est r´f´renc´e par telle cl´ ´trang`re, il est imp´ratif de repr´senter le sch´ma relationnel de
                                        ee      e              e             e              e
      e
mani`re graphique, ce que nous nous contentons de faire.

5.1        e
        Agr´gation
                                  e     e                                    e
    Une association n’est pas forc´ment ´tablie exclusivement entre des entit´s.

5.1.1    Association de type 1 : n
            e
    Consid´rons l’exemple de la figure 34 issu du monde des courses hippiques. La d´pendance fonction-
                                                                                         e
nelle n ◦ cheval + n◦ course → n◦ jockey est la premi`re d´pendance fonctionnelle non ´l´mentaire
                                                              e    e                              ee
                                                           e                                      a e
vers un identifiant que nous rencontrons. Ce type de d´pendance fonctionnelle nous incite ` cr´er une
                                               e
association binaire de type 1 : n entre l’entit´ jockeys et l’association binaire de type n : m qu’il y a entre
         e                                            e                                 e
les entit´s chevaux et courses. D’un point de vue s´mantique, la logique est respect´e puisque un jockey
                                                         a
ne monte pas un cheval, mais un cheval-qui-participe-`-une-course.

                                             e                                                     e
    Pour tenir compte de ce nouveau cas de d´pendance fonctionnelle, il convient d’ajouter une sixi`me
e      a                                                                      e        e
´tape ` la technique de traduction d’un graphe de couverture minimal en un sch´ma entit´s-associations,
                          e
telle qu’elle est commenc´e section 1.3.3 :

    ´                                   e                                           e
    Etape 6 : lorsqu’un identifiant d´pend de plusieurs autres identifiants, son entit´ est en association
de type 1 : n avec l’association qui lie les autres identifiants.
5        ´
    COMPLEMENTS                                                                                                            31

                                                                nom du cheval
                                  numéro de cheval
                                                                date de naissance
                                                               dossard
                                                                                          nom du jockey
                                                               numéro de jockey
                                                                                          prénom
                                                               ordre d’arrivée
                                                               lieu de la course
                                      numéro de course
                                                               date de la course



                                                on
        chevaux                                                                             chevaux
                                             cti
                                          du
    - n° cheval                                                                       - n° cheval
                                       tra


    - nom cheval                                                                      - nom cheval
    - date naissance                                                                  - date naissance

          0,n
                                                                                          participations
       participer                                    jockeys                          -   #n° course
      - dossard              monter                                                   -   #n° cheval
                       1,1                  0,n - n° jockey              traduction
                                                                                      -   dossard
      - ordre d’                                - nom jockey                                                  jockeys
        arrivée                                                                       -   ordre d’arrivée
                                                - prénom                                                    - n° jockey
                                                                                      -   #n° jockey
                                                                                          (non vide)        - nom jockey
          0,n
                                                                                                            - prénom

        courses                                                                              courses
     - n° course                                                                          - n° course
     - lieu course                                                                        - lieu course
     - date course                                                                        - date course


                                                        e a
Fig. 34 – Association binaire de type 1 : n (monter), li´e ` une association binaire de type n : m
(participer)


                            e               e                 e
    Certains auteurs consid`rent que l’agr´gation des entit´s chevaux, courses et de l’association par-
                                        e                                         ee
ticiper constitue une nouvelle entit´ participations qui englobe ces trois ´l´ments graphiques. Dans
                                                              e                                       e
ce cas, l’association monter fait le lien entre les deux entit´s (participations et jockeys). Le r´sultat
                e                         e                                                   e
final sur le sch´ma relationnel est le mˆme. Malheureusement, cette notation n’est pas tr`s pratique car
      e          e                                                    e           a              e
le sch´ma entit´s-associations devient vite illisible lorsqu’une entit´ participe ` plusieurs agr´gations.

            ee                                                                     e     e a
    Nous pr´f´rons donc autoriser, dans ce document, qu’une association puisse ˆtre li´e ` une associa-
                               a
tion binaire de type n : m ou ` une association ternaire (ou plus). Cependant pour ne pas confondre les
                                  e
liens entres associations et entit´s avec les liens entres associations, nous encadrons soigneusement les
                                             e                                       a
associations qui interviennent dans une agr´gation, comme sur la figure 34 en bas ` gauche.

                                               e      e a
    En tout cas, une association ne peut pas ˆtre li´e ` une association binaire de type 1 : n ou 1 : 1. Dans ce
                        e                  e a         e                   oe u                e
cas, l’association doit ˆtre directement li´e ` l’entit´ qui se trouve du cˆt´ o` la cardinalit´ maximale est 1.

             e                                     a                                                c
   Sur le sch´ma relationnel final (figure 34 en bas ` droite), la table de jonction participations re¸oit
      ee      e        e                                                                a    e
une cl´ ´trang`re suppl´mentaire, mais qui contrairement aux autres, ne participe pas ` la cl´ primaire.
5        ´
    COMPLEMENTS                                                                                        32


5.1.2   Association de type n : m
    `    e                          a                                  ´          e
   A pr´sent, ajoutons les parieurs ` notre exemple de la figure 34. Etant donn´ que nous avons la
d´pendance fonctionnelle n
 e                         ◦ cheval + n◦ course + n◦ parieur → montant de la mise (figure 35 en

                                                                    e
haut), nous pourrions avoir une association ternaire entre les entit´s chevaux, courses et parieurs.
Mais dans ce cas, un parieur peut miser sur un cheval dans une course, alors que ce cheval ne participe
    a
pas ` cette course.


                                                               nom du cheval
          nom du                          numéro de cheval
                                                               date de naissance
          parieur
                                                              dossard
                      numéro de parieur                                            nom du jockey
          numéro                                              numéro de jockey
                                                                                   prénom
            de                                                ordre d’arrivée
          compte
                                                              lieu de la course
                       montant            numéro de course
                                                              date de la course
                            correction




                                                               nom du cheval
          nom du                          numéro de cheval
                                                               date de naissance
          parieur
                                                              dossard
                      numéro de parieur                                            nom du jockey
          numéro                                              numéro de jockey
                                                                                   prénom
            de                                                ordre d’arrivée
          compte
                        montant                                lieu de la course
                                           numéro de course
                                                               date de la course


                                                      e
                Fig. 35 – Association ternaire remplac´e par deux associations binaires

                                                        a       e                      e
   Pour pallier cette lacune, on pourrait faire appel ` des d´clencheurs programm´s dans la base de
     e               e                           e
donn´es finale. Les d´clencheurs sont des proc´dures SQL qui, dans notre exemple, permettraient `         a
                          a
chaque insertion ou mise ` jour de lignes dans la table des paris, d’assurer qu’un pari ne puisse pas
                                     a
concerner un cheval dans une course ` laquelle il ne participe pas. Cependant, il existe une solution plus
                                       e   e ee
simple qui repose uniquement sur l’int´grit´ r´f´rentielle.

   En r´alit´ (figure 35 en bas), la vraie d´pendance fonctionnelle directe est (n◦ cheval + n◦ course)
        e e                                e
+ n◦ parieur → montant, ce qui garantit qu’un parieur ne peut miser que sur un cheval-qui-participe-

a
`-une-course.

                                                                                                 e
    Le fait qu’une association ternaire (ou plus) disparaissent au profit d’une ou plusieurs agr´gations
      e e                         e                         e   `
est tr`s fr´quent lorsque l’on mod´lise une situation compl`te. A tel point qu’on peut partir du principe
           e        e                      e            e e
qu’un sch´ma entit´s-associations sans agr´gation est g´n´ralement faux.
5        ´
    COMPLEMENTS                                                                                                          33


                                                      e
    Dans notre exemple, la traduction de la nouvelle d´pendance fonctionnelle en une association de type
                                                                    e
n : m (figure 36 en haut) se fait en appliquant, comme d’habitude, l’´tape 4 de la section 1.3.3.


                                                                   chevaux
                                                           - n° cheval
                                                           - nom cheval
                                                           - date naissance

                                                                     0,n

               parieurs                 parier                 participer                                   jockeys
                                                             - dossard                  monter
            - n° parieur  0,n                        0,n                      1,1                    0,n - n° jockey
            - nom parieur     - montant                      - ordre d’                                  - nom jockey
            - n° compte                                        arrivée                                   - prénom

                                                                     0,n

                                                                   courses




                                                                                        traduction
                                                             - n° course
                                                                                                         courses
                                                             - lieu course
                                                             - date course                            - n° course
                                                                                                      - lieu course
                                                                                                      - date course

                             parieurs                      paris                                          chevaux
                                                                                  participations
                          - n° parieur           -   #n° parieur                                      - n° cheval
                          - nom parieur          -   #n° course               -   #n° course          - nom cheval
                          - n° compte            -   #n° cheval               -   #n° cheval          - date naissance
                                                 -   montant                  -   dossard
                                                                              -   ordre arrivée
                                                                                                         jockeys
                                                                              -   #n° jockey
                                                                                  (non vide)          - n° jockey
                                                                                                      - nom jockey
                                                                                                      - prénom


                                                        e a
Fig. 36 – Association binaire de type n : m (parier), li´e ` une autre association binaire de type n : m

              e
    Sur le sch´ma relationnel obtenu (figure 36 en bas), la traduction de l’association binaire de type n : m
  e a                                                          ıtre                             ee
li´e ` une autre association binaire de type n : m fait apparaˆ dans la table paris une cl´ ´trang`re    e
                ee           e
composite qui r´f´rence la cl´ primaire composite de la table participations.

                          e       e                                                   e
    Rappelons qu’il est d´conseill´ d’utiliser des identifiants composites. Mais la cl´ primaire composite
                                  e
de la table participations est l´gitime puisqu’elle est issue d’une association binaire de type n : m. En
     e                     ee      e                                    e           e
cons´quence de quoi la cl´ ´trang`re composite de la table paris est ´galement l´gitime puisqu’elle est
aussi issue d’une association binaire de type n : m.

                                           e                     e               e     e           e
   On peut ainsi imaginer avoir sur un sch´ma relationnel des cl´s primaires ou ´trang`res compos´es
d’un nombre arbitraire de colonnes, sans pour autant qu’il n’y ait un seul identifiant composite sur le
   e        e
sch´ma entit´s-associations correspondant.
5          ´
      COMPLEMENTS                                                                                               34


5.1.3                                          ee
           Tables de codification ou tables de r´f´rence
                                                                        e
   Certains attributs ne peuvent prendre qu’un jeu volontairement limit´ de valeurs. C’est le cas sur la
          a                                                         e
figure 37 ` gauche, pour les attributs enseignant et mati`re. Cela ´vite sur cet exemple qu’une mˆme
                                                           e                                        e
    e            e                  e       e                 e
mati`re ne soit d´crite de deux mani`res diff´rentes et qu’un mˆme nom d’enseignant ne soit orthographi´e
deux fois.


         semaines                                               semaines
        dans l’année                                           dans l’année
                                                                                                  enseignants
      - n° semaine                                            - n° semaine
      - date de début                                         - date de début                   - n° enseignant
                                                                                                - nom
          jours                                                   jours
                         0,n                                                    0,n                   0,n
     dans la semaine                                         dans la semaine
    - n° jour                                              - n° jour                                assurer
                         0,n                 correction    - jour               0,n
    - jour                     occuper                                                occuper
                                                                                                 1,1
                          - enseignant                                                           1,1
    créneaux horaires                                      créneaux horaires
                      0,n - matière                                             0,n               concerner
     dans la journée                                        dans la journée
- n° créneau             0,n                              - n° créneau          0,n
- heure de début                                          - heure de début                            0,n

                salles                                                 salles                       matière
           - n° salle                                              - n° salle                    - n° matière
           - capacité                                              - capacité                    - libellé


                                               e               e
                                  Fig. 37 – Agr´gation et entit´s de codification

                       e                                               e
    Il est recommand´ de regrouper ces valeurs au sein d’une entit´ dite de codification (qui donnera
                                                           e            a           e                  e
ensuite une table de codification). Si l’attribut concern´ appartient ` une entit´, alors cette entit´ est
                                                      e
en association binaire de type 1 : n avec cette entit´ de codification. Par contre, si l’attribut fait partie
                                    a       e                                          e
d’une association, il faut recourir ` l’agr´gation afin de mettre en association l’entit´ de codification avec
                                          a
l’association de cet attribut (figure 37 ` droite).

               e       e                        e
   Ainsi, l’agr´gation ´vite notamment aux entit´s de codification de transformer une association binaire
en une association ternaire (ou plus).
5        ´
    COMPLEMENTS                                                                                              35


5.2     Identifiant relatif ou lien identifiant
      e                      e                                  u                           e    e ee
    Mˆme en utilisant des agr´gations, il reste des situations o` tout le potentiel de l’int´grit´ r´f´rentielle
                 e
n’est pas exploit´.

5.2.1     e                   e             e
         R´solution d’un probl`me sur le sch´ma relationnel
    Prenons par exemple le sch´ma relationnel en haut de la figure 38, tir´ d’une base de donn´es pour
                                e                                            e                  e
un centre de golf. Dans la table trous, la cl´ primaire n◦ trou est en incr´ment automatique, tandis que
                                             e                             e
la colonne n◦ trou dans parcours est un nombre (g´n´ralement compris entre 1 et 18) qui correspond
                                                        e e
` la num´rotation des trous dans le parcours.
a        e

            e             e                         e
   Le probl`me de ce sch´ma relationnel est qu’en l’´tat, il peut y avoir un score dans la table scores
                                                                                                e a
pour un trou qui n’appartient pas au parcours sur lequel la partie se joue (le lecteur est invit´ ` bien
observer la figure pour s’en apercevoir).


                                                         participations         golfeurs
                                        parties         - #n° golfeur        - n° golfeur
                                   - n° partie          - #n° partie         - nom golfeur
                                   - #n° parcours                            - handicap
                                     (non vide)
                   parcours        - date                                           scores
               - n° parcours                                                   -   #n° golfeur
               - nom parcours           trous                                  -   #n° partie
                                   - n° trou                                   -   #n° trou
                                   - #n° parcours                              -   score
                                     (non vide)
                                   - n° trou dans
                                     parcours
                                                                correction




                                   - par
                                   - distance



                                                            participations          golfeurs
                                        parties            - #n° golfeur       - n° golfeur
                                   - n° partie             - #n° partie        - nom golfeur
                                   - #n° parcours          - #n° parcours      - handicap
                                   - date
                   parcours                                                              scores
               - n° parcours                                                        - #n° golfeur
               - nom parcours           trous                                       - #n° partie
                                   - #n° parcours                                   - #n° parcours
                                   - n° trou dans                                   - #n° trou dans
                                     parcours                                         parcours
                                   - par                                            - score
                                   - distance


                                                 e                          e     e
                      Fig. 38 – Utilisation de cl´s primaires partiellement ´trang`res

           e             e             a                                   e                  a
    Pour r´gler ce probl`me, on peut ` nouveau se reposer sur l’emploi de d´clencheurs. Mais l`-encore,
                                           a      e    e ee
il existe une solution ne faisant appel qu’` l’int´grit´ r´f´rentielle.

                           a                    e                           e
   Cette solution consiste ` faire entrer le num´ro de parcours dans la num´rotation des trous (rem-
pla¸ant ainsi le n◦ trou) ainsi que dans la num´rotation des parties (en conservant cette fois-ci le n◦
   c                                            e
5        ´
    COMPLEMENTS                                                                                                   36


                e                                                 e                 e
partie en incr´ment automatique). Les tables trous et parties poss`dent alors une cl´ primaire com-
                        e     e
posite et partiellement ´trang`re (figure 38 en bas).

          e e      e                                               ee                       e
    Les cl´s ´trang`res des tables participations et scores qui r´f´rencent ces nouvelles cl´s primaires
                 ee                                   e
sont alors compl´t´es par une nouvelle colonne (le num´ro de parcours). Dans la table des scores, comme
cette colonne n◦ parcours n’est introduite qu’une fois, il n’est plus possible pour un joueur d’avoir un
score sur un trou qui n’appartient pas au parcours sur lequel se joue la partie.

5.2.2      e
        Mod`le conceptuel correspondant
         e                                                     e                                 e
    En r´tro-conception, pour tenir compte du fait que le num´ro de parcours fera partie de la cl´ primaire
                              e         e                                            e                 e
de la table trous sur le sch´ma entit´s-associations, il suffit de mettre entre parenth`ses la cardinalit´ 1,1
                                 e
de l’association entre les entit´s trous et parcours (figure 39). L’identifiant de l’entit´ cˆt´ 1,1 devient
                                                                                        e oe
              a                       e
alors relatif ` celui de l’autre entit´ en association.


                                                 parties                                              golfeurs
                   avoir lieu sur                                          participer
                                      (1,1) - n° partie       0,n                           0,n   - n° golfeur
                                            - date                                                - nom golfeur
                        0,n                                                                       - handicap

                     parcours
                 - n° parcours                                                0,n
                 - nom parcours
                        0,n                      trous
                    faire partie            - n° trou dans                  obtenir
                                    (1,1)     parcours           0,n
                                                                        - score
                                            - par
                                            - distance


                                              e
                                Fig. 39 – Repr´sentation des identifiants relatifs

          e                                                                                e
   De mˆme, sur le graphe de couverture minimal, nous introduisons une nouvelle notation (fl`che en
        e            e                e
pointill´s) pour repr´senter le caract`re relatif des identifiants (figure 40).


                                numéro de partie                                          nom du golfeur
                                 sur un parcours         numéro de golfeur
                                                                                          handicap

                         date

                                                                                  score
                                                                                    numéro de trou
                              numéro de parcours
                                                                                   dans un parcours

                                nom du parcours            par         distance


                       e
         Fig. 40 – Repr´sentation des identifiants relatifs sur le graphe de couverture minimale

           e     e                         e
   Si les fl`ches ´taient pleines, les num´ros de trou dans un parcours et de partie sur un parcours
                          e e e           e       a                  ae
figureraient dans des entit´s s´par´es et r´duites ` leur identifiant (` ´viter).
5          ´
      COMPLEMENTS                                                                                                                               37


5.2.3                                   e
             Discussion autour de la num´rotation des exemplaires
   Dans un magasin de location de vid´os, le g´rant peut vouloir num´roter s´par´ment les exemplaires
                                     e        e                     e       e e
             e                                                                              e
de chaque vid´o (figure 41 colonne de gauche), alors que le concepteur de la base de donn´es aurait
         a            e
tendance ` vouloir num´roter globalement l’ensemble des exemplaires (colonne de droite).


        titre          date d’acquisition                                          titre                                        date d’acquisition

numéro de vidéo                                    numéro d’exemplaire       numéro de vidéo                                  numéro d’exemplaire
                            emprunt                                                                                         emprunt

                       numéro de membre                   date d’emprunt                          numéro de membre                     date d’emprunt

       date de   téléphone                   nom                                 date de   téléphone                  nom
     réservation                                                               réservation
                               traduction




                                                                                                         traduction
                                                            exemplaires                                                                 exemplaires
    vidéos                                                                     vidéos
                        correspondre                                                               correspondre
                 0,n              (1,1) - n° exemplaire                                     0,n                              1,1 - n° exemplaire
- n° vidéo                              - date acquisition                   - n° vidéo                                          - date acquisition
- titre                                 - date emprunt                       - titre                                             - date emprunt
      0,n                                       0,1                               0,n                                                    0,1
                          membres                                                                            membres
     réserver                                emprunter                           réserver                                                 emprunter
                   0,n - n° membre 0,n                                                          0,n - n° membre                  0,n
- date réservation     - nom                                                 - date réservation     - nom
                       - téléphone                                                                  - téléphone
                               traduction




                                                                                                         traduction




      vidéos                                               exemplaires          vidéos                                                 exemplaires
    - n° vidéo                                        -   # n° vidéo          - n° vidéo                                          - # n° vidéo
    - titre                                           -   n° exemplaire       - titre                                               (non vide)
                                                      -   date acquisition                                                        - n° exemplaire
                                                      -   #n° membre                                                              - date acquisition
       réservations                membres            -   date emprunt            réservations               membres              - #n° membre
    - # n° vidéo             - n° membre                                      - # n° vidéo              - n° membre               - date emprunt
    - # n° membre            - nom                                            - # n° membre             - nom
    - date réservation       - téléphone                                      - date réservation        - téléphone


                                                         e
                                            Fig. 41 – Num´rotations alternatives des exemplaires

                e                                         e                                              e
    La seule diff´rence entre les deux solutions est l’entr´e ou non de la colonne num´ro vid´o dans la cl´
                                                                                     e       e
                                            e
primaire de la table exemplaire. L’inconv´nient majeur de la solution avec identifiant relatif (colonne de
                                    e                             e
gauche), est le traitement de l’incr´ment automatique du num´ro d’exemplaire, car il faut un compteur
                 e                                                      e                 a
pour chaque vid´o et non pas un compteur pour l’ensemble des vid´os, contrairement ` la solution de
                                                                                           e
la colonne de droite. Le concepteur devrait donc retenir sa solution pour la base de donn´es et proposer
                   e                      e               e
une colonne suppl´mentaire avec la num´rotation du g´rant, afin de lui faire plaisir.
5        ´
    COMPLEMENTS                                                                                                                   38


5.3      e
        H´ritage
                                                                  a                e                     e
   Enfin, il est parfois utile de factoriser les attributs communs ` plusieurs entit´s au sein d’une entit´
 e
m`re.

5.3.1               e
          Sous-entit´
          e                                                                         e              e
   Consid´rons l’exemple suivant : les factures d’une entreprise font l’objet d’un r`glement par ch`que
                                             ıtre              e
ou par carte. Cette entreprise souhaite connaˆ pour chaque r`glement la date, le montant et :
            e                                 e
   – le num´ro et le nom de la banque des ch`ques ;
               e
   – ou le num´ro et la date d’expiration des paiements par carte.

                       e e e                                  e    e  e
   On a donc une entit´ g´n´rique r`glements et deux entit´s sp´cialis´es ch`ques et paiements par
                                     e                                      e
carte. Ces deux sous-entit´s de l’entit´ r`glements ont des attributs propres mais pas d’identifiant
                           e            e e
                                                          e
propre. Au niveau logique objet, on retrouve la notion d’h´ritage.

            e                                        e        e                      e
    Conform´ment aux notations objets, sur le sch´ma entit´s-associations, on repr´sente le lien qui unit
              ea           e e e                  e
une sous-entit´ ` son entit´ g´n´rique par une fl`che creuse (figure 42 au centre). Ce lien remplace une as-
                                        (        ) e                                  (        ) e
sociation ^tre de type 1 : 1 (un ch`que ( est un ) r`glement et un paiement par carte ( est un ) r`glement).
          e                        e


                                                                                                              numéro de chèque
            numéro de facture           numéro de règlement                    numéro de règlement
                                                                                                              nom de la banque

             date de facture              date de règlement                    numéro de règlement            numéro de carte
             et montant total                et montant                                                       date d’expiration
                                           traduction




                                                                                          chèques
                                                                                       - n° chèque
           factures                                            règlements              - nom banque
        - n° facture            correspondre
                        0,n                             1,1 - n° règlement
        - date facture                                      - date règlement
        - montant total                                     - montant                   paiements par carte
                                                                                       - n° carte
                                                                                       - date d’expiration
                                           traduction




                                                                     chèques
                                                                 - #n° règlement
                                      règlements                 - n° chèque
                                                                 - nom banque
                                 -   n° règlement
                                 -   date règlement
                                 -   montant                      paiements par carte
              factures
                                 -   #n° facture                 - #n° règlement
          - n° facture
                                     (non vide)                  - n° carte
          - date facture
                                                                 - date d’expiration
          - montant total


                                                      e                        e
                                        Fig. 42 – Repr´sentation des sous-entit´s

                                                                               (        ),
    Toutefois, il ne faut pas voir d’h´ritage ` chaque fois que l’on peut dire ( est un ) car il faut en
                                      e       a
                e e             e                                        e
plus que l’entit´ m`re ne poss`de que les attributs communs de ses entit´s filles. Par exemple, un cercle
(                             )
( est math´matiquement un ) ovale. Mais l’entit´ cercles (avec les attributs centre et rayon) n’est pas
           e                                     e
5        ´
    COMPLEMENTS                                                                                                    39


              e           e                         e
une sous-entit´ de l’entit´ ovales car celle-ci poss`de davantage d’attributs (centre, rayon principal,
rayon secondaire et rotation).

                                 e                                                      e
    La traduction des sous-entit´s au niveau logique relationnel fait intervenir une cl´ primaire identique
a                 e e                             e       e                    e     e
` celle de l’entit´ m`re, mais dans les sous-entit´s la cl´ primaire est aussi ´trang`re (figure 42 en bas).

                                                                                         e
   Sur le graphe de couverture minimale (figure 42 en haut), l’identifiant dont d´pendent les attributs
                                         e                       e                              e
communs est volontairement dupliqu´ autant de fois que n´cessaire pour les attributs sp´cialis´s. Nous e
                                                     e                  e                        e
pouvons alors remarquer que les attributs qui d´pendent d’un mˆme identifiant peuvent ˆtre regroup´s            e
                                                                                   (    )
avec des (( et )) logiques tandis que d`s qu’il est n´cessaire de faire appel ` un ( ou ) logique, c’est le signe
                                       e             e                        a
        e
d’une sp´cialisation.

     Sur la figure 42, il est tentant de traduire directement le graphe de couverture minimale en le sch´ma
                                                                                                       e
                                                              e        e
relationnel, car il en est beaucoup plus proche que le sch´ma entit´s-associations. C’est une technique
        a                                                                    e
licite, ` condition de traduire correctement les associations de type 1 : 1 (´tape 4 page 17).

5.3.2                      e             e                            e
         Utilisation de l’h´ritage pour s´parer les informations compl´mentaires
      e            e          e e                                e e        e
   L’h´ritage peut ˆtre utilis´ mˆme lorsqu’il n’y a qu’une entit´ sp´cialis´e. C’est utile pour stocker
                e e                           e
dans une table s´par´e des informations compl´mentaires.

           e                                                         ea         e
    Consid´rons la table clients dans laquelle nous stockons d´j` le num´ro, le nom et le code pos-
                       e                 e                   e        ee
tal. Nous souhaitons d´sormais stocker ´galement le num´ro de t´l´phone, l’adresse courier et l’adresse
e                      e     e           a                                e
´lectronique. La premi`re id´e consiste ` ajouter trois colonnes suppl´mentaires dans la table clients.
                               eaee
Mais pour les clients qui ont d´j` ´t´ saisis dans la table, ces trois colonnes seront vides.

    Pour gagner de la place, ces trois colonnes peuvent constituer une nouvelle table annuaire clients
          e           ee
dont la cl´ primaire r´f´rence celle de la table clients (figure 43). Formellement, annuaire clients est
                      e           e
issue d’une sous-entit´ de l’entit´ clients.


                                                            clients                               clients
                                                        - n° client                         - n° client
    numéro de client        nom                         - nom                               - nom
                                                        - code postal                       - code postal
                            code postal

                            téléphone     traduction                        traduction
                                                        annuaire clients                        annuaire clients
    numéro de client        adresse                    - téléphone                          -   # n° client
                                                       - adresse                            -   téléphone
                            email
                                                       - email                              -   adresse
                                                                                            -   email


                                  e                               e               e
                       Fig. 43 – S´paration des informations compl´mentaires par h´ritage

                        e                 e                            a
    La configuration d’h´ritage sur le sch´ma relationnel (figure 43 ` droite) constituera une occasion
  e              e                                           a
d’´crire des requˆtes SQL avec des jointures externes (c’est-`-dire facultatives).
5        ´
    COMPLEMENTS                                                                                                                  40


5.3.3     e
        Sp´cialisation des associations
                   e                    e
    La notion d’h´ritage est valable ´galement pour les associations. Nous pouvons donc faire appel `          a
                                                e                                e e
des sous-associations avec des attributs sp´cifiques et des associations g´n´riques qui contiennent les
                                              a                                        e           e
attributs communs. Mais sans aller jusqu’` l’introduction de sous-associations, d`s qu’un sch´ma entit´s-    e
                        a               e            e                                   e                    e
associations fait appel ` des sous-entit´s, il est fr´quent que les associations concern´es par ces sous-entit´s
              e       e      e
soient elles-mˆmes sp´cialis´es .

          e                                                                                   e    a
    Consid´rons une entreprise artisanale qui vend non seulement des articles produits en s´rie ` prix
                                                                                         e a
unitaire fixe, mais aussi des articles fait sur mesure et dont le prix unitaire est calcul´ ` partir de la
   e                                                                           e                e
dur´e de confection et d’un taux horaire. Dans ce cas, non seulement l’entit´ articles est sp´cialis´e e
en articles en s´rie et articles sur mesure, mais en plus, l’association concerner entre les entit´s
                  e                                                                                    e
                             e      e                                    e
commandes et article est sp´cialis´e selon qu’il s’agit d’un article en s´rie ou sur mesure (figure 44 au
centre).


             numéro d’article                  numéro d’article                                                       quantité
                                                                          prix unitaire de vente

               désignation                     numéro d’article                                     numéro de commande

                       tra                 durée       taux horaire de facturation
                             du
                               ct i
                                   on
                                          articles en série              concerner (1)
                                        - prix unitaire         0,n     - quantité
                                          de vente                        commandée      1,n
            articles                                                                                commandes
         - n° article                                                                        - n° commande
                                          articles sur mesure                            1,n - date commande
         - désignation
                                        - taux horaire            1,1    concerner (2)
                                          de facturation
                                        - durée
                                                                                                          on
                                                                                                       c ti
                                                                                                     du




                                         articles en série                 lignes de
                                                                                                   tr a




                                        - #n° article                     commandes
                                        - prix unitaire                 - #n° commande
             articles                     de vente                      - #n° article
          - n° article                                                  - quantité
                                          articles sur mesure
          - désignation                                                   commandée
                                        - #n° article                                                     commandes
                                        - taux horaire
                                                                                                   - n° commande
                                          de facturation
                                                                                                   - date commande
                                        - durée
                                        - #n° commande
                                          (non vide)


                               e                                  e                   e
                   Fig. 44 – Sp´cialisation des associations en pr´sence de sous-entit´s

                                    e                                     e      e
    Le fait d’avoir volontairement d´doubler l’identifiant commun des entit´s en h´ritage, permet d’utili-
                               e
ser chaque identifiant dupliqu´ dans l’association qui le concerne.

              e                                                     e      e                         e
    Sur le sch´ma relationnel (figure 44 en bas), les associations sp´cialis´es sont traduites de mani`re
           `                         e                                                        e
classique. A charge ensuite pour le d´veloppeur du formulaire de facturation, d’effectuer la r´union des
                 e
articles command´s.
CONCLUSION                                                                                             41


Conclusion
                                          u                                       e       e
    Avec la pratique, vient un moment o` le concepteur peut se passer du mod`le entit´s-associations
                                e                                                            a
et produire directement des sch´mas relationnels corrects. Pourtant, continuer de travailler ` un niveau
                 o    a
conceptuel plutˆt qu’` un niveau logique reste une tactique payante pour lui, dans la mesure o` les u
     e                  e                                                    e       e e
donn´es pourtant stock´es sous une forme relationnelle, doivent de nos jours ˆtre acc´d´es par des appli-
              e                 e                                                              e
cations orient´es objet. Le mod`le conceptuel permet de faire le lien entre d’une part la repr´sentation
                e                                         e         e
objet des donn´es et d’autre le stockage relationnel des mˆmes donn´es.

                             e                          e        e                         oe
    Par exemple, on peut tr`s bien imaginer qu’un sch´ma entit´s-associations soit d’un cˆt´ traduit en
       e                          e    e                         e                              e
un sch´ma relationnel puis impl´ment´ dans une base de donn´es Oracle ; tandis qu’en parall`le, il est
                                           e                       e        e     e
traduit en un diagramme de classe (mod`le logique objet), lui-mˆme impl´ment´ dans un ensemble de
                                                       e
classes Java. Ces classes Java permettent ensuite aux d´veloppeurs de construire des applications clientes
      e                                   e                          e
orient´es objet et qui attaquent de mani`re transparente les donn´es de la base Oracle. Il s’agit d’une
                                   e             e                           e
solution de passage entre la mod´lisation orient´e objet (pertinente pour d´velopper des interfaces gra-
                    e                                       e            e
phiques) et la mod´lisation relationnelle (pertinente pour g´rer les donn´es).

                      e                                             c
    Par ailleurs, la m´thodologie Merise est certes typiquement fran¸aise, mais en Grande-Bretagne, la
  e
m´thodologie standard s’appelle SSADM (Structured Systems Analysis ans Design Method) et repose
         e                             e              a
sur les mˆmes principes. Les nord-am´ricains quant ` eux utilisent ce qu’on appelle des diagrammes de
flux, dont les principes sont repris par la version 2 de Merise.

                                   e
    Aujourd’hui, ce sont les mod´lisations objets et leur unification UML (Unified Modeling Language,
                              e        e                       a              e
autrement dit langage unifi´ de mod´lisation) qui se placent ` la pointe de l’´tat de l’art. Malheureuse-
                                                                                              e
ment, UML n’est qu’un ensemble de notations (d’ailleurs moins intuitives que celles des sch´mas entit´s-e
associations 7 ). La connaissance de ce langage ne permet donc pas au concepteur de faire l’´conomie d’une
                                                                                            e
  e                                a                                       ee
m´thodologie de conception. Voil` pourquoi il n’est pas anachronique de r´-´diter en 2005 un document
          e                          o
sur des m´thodes qui auront bientˆt 30 ans ;-)


 ee
R´f´rences
                                                                                             e
[Akoka et Comyn-Wattiau] Akoka, J. et Comyn-Wattiau I. Conception de bases de donn´es relation-
         nelles. Vuibert Informatique.
                      e                                                                         e
         Ce livre tr`s didactique contient de bon exercices sur la phase de conception d’un syst`me d’in-
         formation.
[Gabay] Gabay, J. Apprendre et pratiquer Merise. Masson, 1989.
                      e       e                                   e
         Ce livre tr`s synth´tique permet de s’exercer sur la m´thode.
[Matheron] Matheron, J.-P. Comprendre Merise. Eyrolles, 1994.
                         e                                                 e
         Cet ouvrage tr`s accessible permet vraiment de comprendre la m´thode.
                                                                                e              e
[Nanci et al.] Nanci, D., Espinasse, B., Cohen, B. et Heckenroth, H. Ing´nierie des syst`mes d’in-
         formation avec Merise. Sybex, 1992.
                                  e          e
         Cet ouvrage complet d´taille la m´thode dans son ensemble.
                                                                               e
[Panet et al.] Panet, G., Letouche, R. et Tardieu, H. Merise/2 : Mod`les et techniques Merise
                e   ´
         avanc´s. Edition d’organisation, 1994.
                     e                         e
         Ce livre d´crit la version 2 de la m´thode.
                                                                        e
[Tardieu et al.] Tardieu, H., Rochfeld, A. et Coletti, R. La m´thode Merise. Principes et outils.
         ´
         Edition d’organisation, 1986.
                    a               ee                              e
         Il s’agit-l` du livre de r´f´rence par les auteurs de la m´thode.




                                            e           a a
  7. qui sont facilement traduisibles en sch´mas UML, grˆce ` certains outils automatiques
TABLE DES FIGURES                                                                                              42


Table des figures
  1           e
       Entit´s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  2    Associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     4
  3    Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      5
  4    Identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      5
  5               e
       Cardinalit´s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     6
  6    Associations plurielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      7
  7                  e
       Association r´flexive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       7
  8           e       c
       Entit´ rempla¸able par une association ternaire . . . . . . . . . . . . . . . . . . . . . . . .          8
  9                               e e                            c
       Contre-exemple : l’entit´ d´parts n’est pas rempla¸able par une association ternaire . . .               9
  10                    e
       Exemple d’entit´ quaternaire ou 4-aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         9
  11   Contre-exemples de la normalisation des noms . . . . . . . . . . . . . . . . . . . . . . . . .          10
  12   Contre-exemples de la normalisation des attributs . . . . . . . . . . . . . . . . . . . . . . .         11
  13   Normalisation des attributs des associations . . . . . . . . . . . . . . . . . . . . . . . . . .        12
  14              e
       Cardinalit´ 1,1 et attributs d’une association . . . . . . . . . . . . . . . . . . . . . . . . .        12
  15   Contre-exemples de la normalisation des associations . . . . . . . . . . . . . . . . . . . . .          13
  16                               e
       Application de la premi`re forme normale : il peut y avoir plusieurs auteurs pour un livre
              e
       donn´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     14
  17                              e
       Application de la troisi`me forme normale de Boyce-Codd . . . . . . . . . . . . . . . . . .             15
  18     e                               ee
       D´pendance fonctionnelle non ´l´mentaire, mais directe . . . . . . . . . . . . . . . . . . .            16
  19   Graphe de couverture minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         17
  20                             e
       Identification des entit´s et des associations sur un graphe de couverture minimale . . . .              17
  21       e         e                          e          a
       Sch´ma entit´s-associations normalis´ obtenu ` partir du graphe de couverture minimale .                18
  22                                                      e
       Sans historisation des emprunts, pas de probl`me . . . . . . . . . . . . . . . . . . . . . . .          18
  23     e                     e        e                    e
       Mˆme pour une entit´ historis´e, il vaut mieux ´viter que la date n’entre dans l’identifiant             19
  24     e                                       e
       D´pendances fonctionnelles comment´es . . . . . . . . . . . . . . . . . . . . . . . . . . . .           20
  25                       e                 ee
       Utilisation d’une d´pendance non ´l´mentaire et sans enfant sur un graphe de couverture
       minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     20
  26       e
       Sch´ma relationnel simple entre deux tables . . . . . . . . . . . . . . . . . . . . . . . . . .         23
  27   Traduction d’une association de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . .        24
  28   Traduction d’une association de type n : m . . . . . . . . . . . . . . . . . . . . . . . . . . .        25
  29   Traduction d’une association de type 1 : 1 . . . . . . . . . . . . . . . . . . . . . . . . . . .        25
  30   Traduction alternative d’une association de type 1 : 1 . . . . . . . . . . . . . . . . . . . . .        26
  31   Traduction d’une association ternaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       26
  32                         e
       Sacrifice de la troisi`me forme normale . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        27
  33                    e           e
       Tables particuli`res en r´tro-conception . . . . . . . . . . . . . . . . . . . . . . . . . . . .        29
  34                                                       e a
       Association binaire de type 1 : n (monter), li´e ` une association binaire de type n : m
       (participer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      31
  35                                  e
       Association ternaire remplac´e par deux associations binaires . . . . . . . . . . . . . . . .           32
  36                                                     e a
       Association binaire de type n : m (parier), li´e ` une autre association binaire de type n : m          33
  37        e               e
       Agr´gation et entit´s de codification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        34
  38                    e                             e        e
       Utilisation de cl´s primaires partiellement ´trang`res . . . . . . . . . . . . . . . . . . . . .        35
  39          e
       Repr´sentation des identifiants relatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       36
  40          e
       Repr´sentation des identifiants relatifs sur le graphe de couverture minimale . . . . . . . .            36
  41          e
       Num´rotations alternatives des exemplaires . . . . . . . . . . . . . . . . . . . . . . . . . .          37
  42          e                        e
       Repr´sentation des sous-entit´s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       38
  43    e                                    e                    e
       S´paration des informations compl´mentaires par h´ritage . . . . . . . . . . . . . . . . . .            39
  44      e                                    e                     e
       Sp´cialisation des associations en pr´sence de sous-entit´s . . . . . . . . . . . . . . . . . .         40
INDEX                                                                                                                                                                                 43



Index
A                                                                                               transitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
                                                                                           diagramme de flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
   e
agr´gation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
                                                                                           doublon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
aspiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
    4-aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9    E
    binaire                                                                                enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
                                                                                                                    e           e
       de type 1 : 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 entier auto-incr´ment´ . . . . . . . . . . . . . . . . . . . . . . . . . .11
       de type 1 : n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24                e
                                                                                           entit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
       de type n : m. . . . . . . . . . . . . . . . . . . . . . . . . . . . .25                 de codification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
    en plusieurs exemplaires . . . . . . . . . . . . . . . . . . . . 13                               ee
                                                                                                de r´f´rence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
    fantˆme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
         o                                                                                      des dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
    plurielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7                  c
                                                                                                rempla¸able . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
    redondante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13             type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
                                                                                                                         e
    r´flexive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 exemplaires (num´rotation) . . . . . . . . . . . . . . . . . . . . 37
     e
    sp´cialis´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 exhaustif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
       e       e
     ternaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
attribut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5  F
     calculable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 factorisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
     en plusieurs exemplaires . . . . . . . . . . . . . . . . . . . . 11 fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
                                                                                               e                                           e
     imaginaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 20 fl`che pleine ou en pointill´s . . . . . . . . . . . . . . . . . . . . 36
                                                                                             forme normale
C                                                                                                 deuxi`me . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
                                                                                                          e
                                                                                                           e
                                                                                                  premi`re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
           e
cardinalit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 24
                                                                                                          e
                                                                                                  troisi`me de Boyce-Codd . . . . . . . . . . . . . . . . . . . 15
     maximale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
                                                                                             fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 14
     question. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
     ternaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
                                                                                              G
                                                                                              e e       e
                                                                                             g´n´ricit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
  e
cl´
                                                                                             graphe de couverture minimale . . . . . . . . . . . . . . . . . 17
     e       e
     ´trang`re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
                 e
     particuli`re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
     primaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22        H
                                                                                               e
Codasyl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 h´ritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
                                                                                                e
coh´rence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 27 hi´rarchique (SGBD) . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    e
colonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22   historisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
                                                                                                     e e e
commentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 homog´n´it´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27       I
                                                                                              identifiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 11
D                                                                                                   relatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
                                                                                                      e
                                                                                              incoh´rence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11, 15
date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
DBMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22           e
                                                                                              incr´mentation automatique . . . . . . . . . . . . . . . . . . . . 11
d´clencheur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 32
 e                                                                                            index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
d´pendance fonctionnelle . . . . . . . . . . . . . . . . . . . . . . . 16
 e                                                                                                e      e ee
                                                                                              int´grit´ r´f´rentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
    directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16               e
                                                                                              intitul´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    non ´l´mentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
            ee                                                                                  e
                                                                                              it´ration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
       vers un identifiant. . . . . . . . . . . . . . . . . . . . . . . .30
    non ´l´mentaire
            ee                                                                                J
       sans enfant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
    plurielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20      externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
     e
    r´flexive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
INDEX                                                                                                                                                                                    44


L                                                                                              SSADM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
                                                                                               symbole ∞ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
lien identifiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
                                                                                               synonyme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
                                                                                                   e
                                                                                               syst`me d’information . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
         e
lisibilit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

M                                                                                              T
maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
MCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4                                                 e
                                                                                                  d’informations compl´mentaires . . . . . . . . . . . . 39
Merise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 41        de codification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
    version 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30            de jonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 25
MLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22             ee
                                                                                                  de r´f´rence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
MLDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22         des dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
MPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27   taille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
                                                                                             traduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 18
N                                                                                                            e
                                                                                             transitivit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
                                                                                             type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
navigationnel (SGBD) . . . . . . . . . . . . . . . . . . . . . . . . . . 22
normalisation
   des associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13                 U
   des attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11              UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
     des associations . . . . . . . . . . . . . . . . . . . . . . . . . . 12                         e
                                                                                               unicit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25, 28
                           e
   des cardinalit´s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
   des entit´s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 19
                 e
   des identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
                                                                                               V
                                                                                                       e
                                                                                               vacuit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
   des noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10           vide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

O
optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
      e
orient´ objet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22, 41

P
performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
     e
polys`me . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

R
redondance . . . . . . . . . . . . . . . . . . . . . . 10, 13, 15, 21, 27
 ee
r´f´rence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
     e
requˆte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
 e
r´seau (SGBD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
 e
r´tro-conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
reverse engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

S
   e
sch´ma
           e
     entit´s-associations . . . . . . . . . . . . . . . . . . . . . . . . . . 6
     relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 22
SGBDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
             e
sous-entit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
  e
sp´cialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 40
SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:9
posted:11/16/2012
language:
pages:44