<?xml version='1.0' encoding='iso-8859-1' standalone='no'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"  "/usr/local/share/xml/docbook/4.2/docbookx.dtd"
[


<!ENTITY unix   "<productname>Unix</productname>">
<!ENTITY Unix   "<emphasis>Unix</emphasis>">

]

>
<article class="techreport" lang="fr" >

  <!--  ================================= Entetes info ============================= -->

  <articleinfo>
    <author>
      <firstname>Ivan</firstname>
      <surname>Kurzweg</surname>  
      <email>ik-r@wanadoo.fr</email>
    </author>

    <title>Modélisation des données</title>

    <copyright>
      <year>2006</year>
      <holder>Ivan KURZWEG, <emphasis>ivan.kurzweg@wanadoo.fr</emphasis></holder>
    </copyright>

    <legalnotice>
      <para>Permission to use, copy, modify, and distribute this documentation for any purpose with or without fee is here by granted, provided that the above copyright notice and this permission notice appear in all copies.
</para>        
    </legalnotice>

    <keywordset>
      <keyword></keyword>
    </keywordset>

  </articleinfo>

  <abstract> 
    <para>Ce document propose une introduction à la conception de bases de données relationnelles selon la méthode Merise. Il aborde les modèles conceptuels de données et le modèle relationnel. </para>
  </abstract>

    <sect1>
      <title>Présentation de Merise</title>

      <sect2>
        <title>Intoduction / historique</title>

        <para>MERISE est une méthode de conception, de développement et de
        réalisation de projets informatiques, mise au point par une équipe de
        chercheurs français, sur commande du Ministère de l'Industrie en 1977.
        La collaboration entre des universitaires, des professionnels et des
        spécialistes en organisation d'entreprise a abouti à  la publication
        d'un ouvrage en 1978.</para>

        <para>La méthode a ensuite donné lieu à  plusieurs mises à  jour, et on
        a parlé de " MERISE 2 ". Aujourd'hui, la méthode Merise reste une
        référence en matière de conception de systèmes d'information. Mais la
        montée en puissance de <emphasis>l'approche objet </emphasis>pose
        certains problèmes, en particulier au niveau de la séparation des
        données et des traitements.</para>

        <para>Même si <abbrev>UML</abbrev>
        (<literal>United Modeling Language</literal>), fait de plus en plus
        d'ombre à  Merise, dans le cadre de la modélisation des données à destination d'un SGBDR, Merise
        convient parfaitement.</para>
      </sect2>

      <sect2>
        <title>Une approche par niveaux - Le cycle d'abstraction</title>

        <para>Parce que la maintenance d'une application informatique met
        clairement en évidence plusieurs types de problèmes, depuis les
        modifications qu'entraîne un changement de matériel, jusqu'à  la
        refonte complète de l'application qu'exige la mise en place d'une
        réglementation totalement nouvelle, il a paru essentiel de dégager des
        niveaux correspondant à  ces préoccupations différentes. Pour Merise et
        la plupart des méthodes de conception, il est classique de mettre en
        évidence 3 niveaux de réflexion :</para>

        <sect3>
          <title>Le niveau conceptuel</title>

          <para>Il correspond à  la définition des finalités de l'entreprise en
          explicitant sa raison d'être. Ce niveau, décrit à  travers un
          ensemble de règle de gestion, traduit les objectifs et les
          contraintes qui pèsent sur l'entreprise. On y retrouve par exemple
          les règles de gestion du personnel, de tenue de la comptabilité, de
          livraison des produits finis, etc..</para>
        </sect3>

        <sect3>
          <title>Le niveau organisationnel</title>

          <para>Son rôle est de définir l'organisation qu'il est souhaitable
          de mettre en place dans l'entreprise. On parle de choix
          d'organisation. L'analyste précise les postes de travail, la
          chronologie des opérations, les choix d'automatisation, etc..</para>
        </sect3>

        <sect3>
          <title>Le niveau technique</title>

          <para>Enfin, sont intégrés les moyens techniques nécessaires au
          projet. Ils s'expriment en terme de matériels ou de logiciels, et
          sont les plus sujets à  changements (évolution technologique).</para>
        </sect3>

        <sect3>
          <title>Le cycle d'abstraction</title>

          <para>La conception du système d'information se fait par étapes,
          afin d'aboutir à  un système d'information fonctionnel reflétant une
          réalité physique. Il s'agit donc de valider une à  une chacune des
          étapes en prenant en compte les résultats de la phase précédente.
          D'autre part, les données étant séparées des traitements, il faut
          vérifier la concordance entre données et traitements afin de
          vérifier que toutes les données nécessaires aux traitements sont
          présentes et qu'il n'y a pas de données superflues. Cette succession
          d'étapes est appelée cycle d'abstraction pour la
          conception des systèmes d'information :</para>

          <orderedlist>
            <listitem>
              <para>Système d'information manuel</para>
            </listitem>

            <listitem>
              <para>Expression des besoins</para>
            </listitem>

            <listitem>
              <para>Modèle conceptuel</para>
            </listitem>

            <listitem>
              <para>Modèle logique</para>
            </listitem>

            <listitem>
              <para>Modèle physique</para>
            </listitem>

            <listitem>
              <para>Système d'information automatisé</para>
            </listitem>
          </orderedlist>

          <table>
            <title>Les différents modèles de Merise</title>

            <tgroup cols="4">
              <tbody>
                <row>
                  <entry><emphasis>Niveaux</emphasis></entry>

                  <entry><emphasis>Données</emphasis></entry>

                  <entry><emphasis>Traitements</emphasis></entry>

                  <entry><emphasis>Questions</emphasis></entry>
                </row>

                <row>
                  <entry><emphasis>Conceptuel</emphasis></entry>

                  <entry>Modèle Conceptuel des Données
                  (<abbrev>MCD</abbrev>)</entry>

                  <entry>Modèle conceptuel des Traitements
                  (<abbrev>MCT</abbrev>)</entry>

                  <entry>Quoi ?</entry>
                </row>

                <row>
                  <entry><emphasis>Organisationnel</emphasis></entry>

                  <entry>Modèle Logique des Données
                  (<abbrev>MLD</abbrev>)</entry>

                  <entry>Modèle Organisationnel des Traitements
                  (<abbrev>MCT</abbrev>)</entry>

                  <entry>Qui ? Où ? Comment ?</entry>
                </row>

                <row>
                  <entry><emphasis>Technique</emphasis></entry>

                  <entry>Modèle Physique des Données
                  (<abbrev>MPD</abbrev>)</entry>

                  <entry>Modèles Opérationnel des Traitements
                  (<abbrev>MOpD</abbrev>)</entry>

                  <entry>Comment ?</entry>
                </row>
              </tbody>
            </tgroup>
          </table>
        </sect3>
      </sect2>

      <sect2>
        <title>La courbe du soleil</title>

        <para>La courbe du soleil permet de représenter le cycle de vie du
        projet selon Merise. On remarque une montée vers le niveau conceptuel,
        qui correspond à  une étude de l'existant, puis une redescente vers le
        niveau physique, c'est la phase de conception.</para>

        <figure>
          <title>Courbe du soleil</title>

          <mediaobject>
            <imageobject>
              <imagedata fileref="courbe_soleil.jpg" />
            </imageobject>
          </mediaobject>
        </figure>
      </sect2>

  
    </sect1>

    <sect1>
      <title>Modèle Entité Association</title>

      <para>La modélisation conceptuelle des données est la
      <emphasis>représentation de l'ensemble des données du système
      d'information</emphasis> étudié, sans tenir compte des aspects
      organisationnels et techniques liés à  leur mise en !oeuvre dans tel ou tel
      traitement. Cette représentation, appelée " <emphasis><command>schéma
      conceptuel des données</command></emphasis> "est obtenue par la mise en
      oeuvre des concepts et des outils du modèle entité - association de la
      méthode Merise.</para>

      <itemizedlist>
        <listitem>
          <para>Il y a nécessité de <emphasis>formaliser</emphasis> le SCD
          (schéma conceptuel des données) En analyse, pour traiter un
          problème, une situation, il faut :</para>

          <para><figure>
              <title>Formalisation du MCD</title>

              <mediaobject>
                <imageobject>
                  <imagedata fileref="bdd_mcd.jpg" />
                </imageobject>
              </mediaobject>
            </figure></para>
        </listitem>

        <listitem>
          <para>Caractéristiques d'un formalisme :</para>

          <itemizedlist>
            <listitem>
              <para>Approche naturelle et de compréhension aisée (pour les
              analystes et les utilisateurs)</para>
            </listitem>

            <listitem>
              <para>Rigoureux</para>
            </listitem>

            <listitem>
              <para>Informatisable</para>
            </listitem>
          </itemizedlist>
        </listitem>
      </itemizedlist>

      <sect2>
        <title>Dictionnaire des données</title>

        <para>Une des images les plus classique de l'informaticien est celle
        d'un technicien concevant des solutions géniales à  des problèmes qui
        ne lui sont pas posés, et rétif à  tout dialogue avec l'utilisateur.
        Même si les cas d'écoles qui sont présentés en formation ont des
        objectifs clairement posés sur un existant vide, dans la vie
        professionnelle, il en va généralement bien autrement. Lors des
        différentes interviews qui jalonnent l'étude préalable, l'analyste
        recense les données apparaissant dans les différents documents de
        l'entreprise. Au cours de la conception détaillée, il va tenter de les
        décomposer en <emphasis>données élémentaire</emphasis>s, et les
        épurer, c'est-à -dire n'en retenir que les pertinentes.</para>

        <para>Etablir un dictionnaire des données, c'est <emphasis>recenser
        l'ensemble des informations de l'application</emphasis>, et leur
        attribuer un type de données, c'est-à -dire indiquer sous quelle forme
        informatique elles seront enregistrées.</para>

        <sect3>
          <title>Etablir la liste des données élémentaires</title>

          <para>Une donnée élémentaire est une donnée qui ne peut être
          décomposée. Souvent les données brutes sont constituées de plusieurs
          parties, mais on ne doit décider de les décomposer qu'en fonction de
          l'usage qui en sera fait.</para>

          <example>
            <title>Exemple</title>

            <para>Une adresse postale d'un client est une donnée brute, qu'on
            peut décomposer en <emphasis>AdresseRue,</emphasis>
            <emphasis>CodePostal</emphasis> et <emphasis>Ville.</emphasis>
            Cela permet par exemple de sélectionner tous les clients d'une
            ville. Mais si on a aussi besoin de connaître tous les clients
            d'une rue, on sera alors obligé de décomposer
            <emphasis>AdresseRue</emphasis> en <emphasis>NuméroRue</emphasis>
            et <emphasis>NomRue.</emphasis></para>
          </example>
        </sect3>

        <sect3>
          <title>Epurer les données</title>

          <para>Lorsque deux noms recouvrent la même réalité, il s'agit d'une
          <emphasis>synonymie.</emphasis> Lorsqu'un même nom de données
          recouvre plusieurs réalités, il s'agit d'une
          <emphasis>polysémie.</emphasis> Il faut bien sûr supprimer ces deux
          défauts.</para>

          <example>
            <title>Exemple</title>

            <para><emphasis>CodeClient</emphasis> et
            <emphasis>referenceClient</emphasis> sont deux noms de données qui
            peuvent recouvrir la même réalité, c'est-à -dire le moyen
            d'identifier le client. Il ne faut donc retenir qu'un seul nom
            pour cette propriété.</para>
          </example>
        </sect3>

        <sect3>
          <title>Distinguer les données calculées des données non
          calculées</title>

          <para>Une donnée calculée est une donnée dont la valeur peut être
          obtenue en appliquant une règle de calcul aux valeurs d'autres
          données élémentaires. Ces données ne doivent pas entrer dans le
          modèle conceptuel des données.</para>
        </sect3>

        <sect3>
          <title>Dresser le dictionnaire des données</title>

          <para>Les données élémentaires, calculées ou non calculées, épurées
          et retenues pour leur pertinence, constituent le dictionnaire des
          données. Pour chacune d'elles, on précise le type et le domaine de
          définition. On indiquera également si elles sont calculées ou
          non.</para>
        </sect3>

        <sect3>
          <title>Exercice</title>

          <para>Tout au long de ce dossier, nous allons tenter de modéliser un
          système d'information concernant des accidents de la circulation. En
          voici les grands traits :</para>

          <para>Un club de chasse sous-marine désire informatiser les résultats de parties de chasse. Tous les pêcheurs du club sont connus sous un pseudo.
Les parties de chasse ne sont pas communes (chacun chasse individuellement). On considère 
qu'il ne peut y avoir qu'une seule chasse dans la même journée.
Les espèces sont cataloguées en fonction de leur niveau de tir (difficulté qu'ils présentent à
être chassés) et de leur poids moyen.</para>
<para>Lorsqu'on enregistre le résultat d'une chasse, seul le nombre de poissons par espèce est
comptabilisé (les poissons ne sont pas pesés : on raisonne toujours à partir du poids moyen).</para>
<para>Enfin, à chaque niveau de tir est associé un nombre de points (plus le niveau est élevé, plus le
nombre de points est important), qui permet d'attribuer un score à chaque partie de chasse.
L'objectif du club est de permettre d'établir les documents suivants :
<itemizedlist>
<listitem><para>l'inventaire des espèces de poissons et le niveau de tir qui leur est attribué</para></listitem>
<listitem><para> le récapitulatif du nombre de prises dans l'année pour l'ensemble des chasseurs du club</para></listitem>
<listitem><para>le bilan des parties de chasse pour un chasseur donné (NB : on désire voir apparaître le
    lieu où s'est effectuée chaque chasse).</para></listitem></itemizedlist>
</para>

          <example>
            <title>Exercice</title>

            <para>Etablir le dictionnaire des données pour ce SI. </para>
          </example>
        </sect3>
      </sect2>

      <sect2>
        <title>Propriété</title>

        <para><emphasis><emphasis role="bold">Définition</emphasis>
        :</emphasis> Appelée aussi information élémentaire, données
        élémentaire ou rubrique, la propriété désigné le plus petit élément
        d'information manipulable. Pour être correctement définie, une
        propriété doit toujours être décrite par un " nom de propriété ",
        prendre ses valeurs dans un domaine de valeurs et avoir un sens dans
        le système d'information étudié.</para>

      <note>
        <para>Une propriété est véritablement élémentaire
        si elle n'est pas décomposable en un ensemble de propriétés
        signifiantes plus petites. On dit alors qu'elle est atomique. Par
        exemple, une adresse postale peut être décomposé en : - numéro de rue
        - nom de rue - code postal - ville Mais cette décomposition fine n'est
        pas systématique, elle est uniquement guidée par la pertinence à 
        traduire une réalité de l'entreprise. Ainsi, il n'est pas nécessaire
        de découper une date en trois propriétés distinctes, jour, mois et
        année.</para></note>
      </sect2>

      <sect2>
        <title>Entités</title>

        <sect3>
          <title>Définition</title>

          <para><application>Une entité est un type d'élément (abstrait ou
          concret) du monde réel défini par : - une existence propre et une
          utilité pour l'organisation étudiée - des occurrences multiples
          (c'est-à -dire au moins deux) - des propriétés (au moins une), dont
          un identifiant. </application></para>
        </sect3>

        <sect3>
          <title>Formalisme</title>

          <para><application>L'entité est représentée par un
          rectangle.</application><figure>
              <title>Entité</title>

              <mediaobject>
                <imageobject>
                  <imagedata fileref="bdd_entite.jpg" />
                </imageobject>
              </mediaobject>
            </figure></para>
        </sect3>

        <sect3>
          <title>Exercice</title>

          <para>A partir du dictionnaire des données établi au paragraphe précédent, essayez de distinguer 4 entités représentant la gestion du cleb de chasse sous marine.</para>
        </sect3>
      </sect2>

      <sect2>
        <title>Identifiant</title>

        <sect3>
          <title>Définition</title>

          <para><application>Parmi toutes les propriétés d'une entité, une ou
          plusieurs d'entre elles doivent jouer un rôle particulier, celui de
          permettre de distinguer chaque occurrence de l'entité par rapport à 
          toutes les autres. Cette propriété ou groupe de propriétés est
          appelé identifiant. Il existe plusieurs types d'indentifiant :
          </application></para>

          <para><application>. <emphasis>Identifiant simple</emphasis> : il
          est composé d'une seule propriété (exemple précédent) .<emphasis>
          Identifiant composé</emphasis> : il est composé de deux propriétés
          ou plus. .<emphasis> Identifiant relatif</emphasis> : il est
          constitué pour partie d'une propriété appartenant à  une autre
          entité. . <emphasis>Identifiant hérité</emphasis> : il résulte d'un
          lien de dépendance avec une entité générique. </application></para>
        </sect3>

        <sect3>
          <title>Formalisme</title>

          <para><application>L'identifiant d'une entité est l'ensemble des
          propriétés soulignées.</application><figure>
              <title>Identifiant</title>

              <mediaobject>
                <imageobject>
                  <imagedata fileref="bdd_ident.jpg" />
                </imageobject>
              </mediaobject>
            </figure></para>
        </sect3>

        <sect3>
          <title>Exercice</title>

          <para><application>Indiquez les identifiants des entités définies
          dans l'exercice précédent. Justifiez vos choix</application></para>
        </sect3>
      </sect2>

      <sect2>
        <title>Associations</title>

        <para><emphasis role="bold">Définition</emphasis> : Une association
        est un type d'élément du monde réel défini par :<itemizedlist>
<listitem>
              <para> - une absence d'existence intrinsèque </para>
            </listitem>
<listitem>
              <para>- au moins une occurrence </para>
            </listitem>
<listitem>
              <para>- une dimension  (mesurée par le nombre d'entités rattachées) </para>
            </listitem>
<listitem>
              <para>- une utilité pour  l'organisation étudiée.</para>
            </listitem></itemizedlist> .</para>

        <para><emphasis role="bold">Formalisme</emphasis> : L'association est
        représentée par un ovale.<figure>
            <title>Association</title>

            <mediaobject>
              <imageobject>
                <imagedata fileref="bdd_assoc.jpg" />
              </imageobject>
            </mediaobject>
          </figure></para>

        <example>
          <title>Dimensions d'associations</title>

          <itemizedlist>
            <listitem>
              <para>Association entre deux entités (dimension 2) :<figure>
                  <title>Association binaire</title>

                  <mediaobject>
                    <imageobject>
                      <imagedata fileref="bdd_assoc_bin.jpg" />
                    </imageobject>
                  </mediaobject>
                </figure></para>
            </listitem>

            <listitem>
              <para>Association entre trois entités (dimension 3) :<figure>
                  <title>Association ternaire</title>

                  <mediaobject>
                    <imageobject>
                      <imagedata fileref="bdd_assoc_ter.jpg" />
                    </imageobject>
                  </mediaobject>
                </figure></para>
            </listitem>

            <listitem>
              <para>Association réflexive (dimension 1) :<figure>
                  <title>Association réflexive</title>

                  <mediaobject>
                    <imageobject>
                      <imagedata fileref="bdd_assoc_une.jpg" />
                    </imageobject>
                  </mediaobject>
                </figure></para>
            </listitem>
          </itemizedlist>
        </example>

        <para><emphasis>Exercice :</emphasis></para>

      <para>Représenter les associations reliant les entités de notre club de chasse sous marine.
</para>
      </sect2>

      <sect2>
        <title>Occurence</title>

        <para><emphasis role="bold">Définition</emphasis> : Une occurrence de
        propriété est une valeur que peut prendre une propriété.</para>

        <sect3>
          <title>Occurence d'une entité</title>

          <para>Une occurrence d'entité est un ensemble ayant une existence
          propre d'occurrences de ses propriétés.</para>

          <para><example>
              <title>Occurence d'une entité</title>

              <para>Soit l'entité suivante : <figure>
                  <title>Entité stagiaire</title>

                  <mediaobject>
                    <imageobject>
                      <imagedata fileref="bdd_entite_stag.jpg" />
                    </imageobject>
                  </mediaobject>
                </figure></para>

              <para>L'ensemble <citetitle>{PAYET, JEAN,
              23/10/1970}</citetitle> est une occurrence de l'objet
              <emphasis>STAGIAIRE</emphasis> car " <emphasis>PAYET</emphasis>
              " est une occurrence de la propriété <emphasis>NOM</emphasis>, "
              <emphasis>JEAN</emphasis> " une occurrence de
              <emphasis>PRENOM</emphasis> et " 2<emphasis>3/10/1970</emphasis>
              " une occurrence de
              <emphasis>DATE_DE_NAISSANCE</emphasis>.</para>
            </example></para>
        </sect3>

        <sect3>
          <title>Occurence d'une association</title>

          <para>Une occurrence de relation est constituée d'une et d'une seule
          occurrence de chacune des entités associées. L'occurrence de chacune
          des propriétés de l'association est en relation avec les occurrences
          des entités associées.</para>

          <example>
            <title></title>

            <para><figure>
                <title>Occurence d'une association</title>

                <mediaobject>
                  <imageobject>
                    <imagedata fileref="bdd_occur_assoc.jpg" />
                  </imageobject>
                </mediaobject>
              </figure>Soient les occurrences suivantes :</para>

            <para> {<emphasis>PAYET, JEAN, 23/10/1970</emphasis>} : une
            occurrence de l'entité " <emphasis>STAGIAIRE</emphasis> ".</para>

            <para> {<emphasis>BDD</emphasis>} et
            {<emphasis>JAVASCRIPT</emphasis>} : deux occurrences de l'entité "
            <emphasis>MODULE </emphasis>".</para>

            <para>12 peut être une occurrence de " <emphasis>NOTE</emphasis> "
            associée aux occurrences {<emphasis>PAYET, JEAN,
            23/10/1970</emphasis>} et {<emphasis>BDD</emphasis>} ; 13 une
            autre occurrence de " <emphasis>NOTE</emphasis> " associée aux
            occurrences {<emphasis>PAYET, JEAN, 23/10/1970</emphasis>} et
            {<emphasis>JAVASCRIPT</emphasis>}.</para>
          </example>
        </sect3>
      </sect2>

      <sect2>
        <title>Cardinalités</title>

        <para><emphasis role="bold">Définition</emphasis> : La cardinalité
        d'une entité par rapport à  une association s'exprime par deux nombres
        appelés cardinalité minimum et cardinalité maximum.</para>

        <para>La cardinalité minimale peut être égale à  0 ou à  1.</para>

        <para>Si la cardinalité est égale à  0, c'est qu'il existe au moins une
        occurrence de l'entité qui ne participe pas aux occurrences de
        l'association.</para>

        <para>Si la cardinalité est égale à  1, chaque occurrence de l'entité
        participe aux occurrences de l'association.</para>

        <para>La cardinalité maximale exprime le nombre maximum de fois oà¹ une
        occurrence de l'entité participe aux occurrences de l'association. On
        la note égale à  <emphasis role="bold">n</emphasis>, elle peut être
        égale à  1 ou à  tout autre nombre strictement positif (quand le nombre
        d'occurrences est quantifiable).<figure>
            <title>Cardinalité</title>

            <mediaobject>
              <imageobject>
                <imagedata fileref="bdd_card.jpg" />
              </imageobject>
            </mediaobject>
          </figure></para>

        <example>
          <title>Cardinalités</title>

          <para><figure>
              <title>Cardinalité</title>

              <mediaobject>
                <imageobject>
                  <imagedata fileref="bdd_card_ex.jpg" />
                </imageobject>
              </mediaobject>
            </figure></para>

          <itemizedlist>
            <listitem>
              <para>Un stagiaire peut ne pas avoir de note, c'est à  dire qu'il
              peut exister un stagiaire qui n'a pas passé l'évaluation
              (cardinalité minimum = 0).</para>
            </listitem>

            <listitem>
              <para>Un stagiaire peut être inscrit à  plusieurs module et avoir
              une note pour chacun des modules auxquels il est inscrit
              (cardinalité maximum = n)</para>
            </listitem>

            <listitem>
              <para>Il est possible que personne ne se présente à  l'évaluation
              pour un module (cardinalité minimum = 0)</para>
            </listitem>

            <listitem>
              <para>Plusieurs notes peuvent être attachées à  un même module
              (cardinalité maximum = n)</para>
            </listitem>
          </itemizedlist>
        </example>
      </sect2>

      <sect2>
        <title>Dépendances fonctionnelles</title>

        <para><emphasis role="bold">Définition</emphasis> : Deux rubriques (ou
        propriétés) sont en dépendance fonctionnelle si la connaissance d'une
        d'entre elles permet la connaissance de l'autre.</para>

        <para><emphasis role="bold">Notation</emphasis> : A -> B signifie que B
        dépend fonctionnellement de A. En d'autres termes, la connaissance
        d'une occurrence de la propriété A permet la connaissance d'une
        occurrence de la propriété B.</para>

        <example>
          <title>Dépendances fonctionnelles</title>

          <para>Numéro INSEE -> sexe ; Numéro INSEE -> année de naissance ; Code
          d'un stagiaire -> Nom de ce stagiaire</para>
</example>

      </sect2>

      <sect2>
        <title>Normalisation</title>

        <para>Le modèle conceptuel des données sera toujours présenté
        en<emphasis role="bold"> troisième forme normale</emphasis>.</para>

        <sect3>
          <title>Première Forme Normale (1 FN) :</title>

          <para>Une entité est en première forme normale si et seulement si
          :</para>

          <itemizedlist>
            <listitem>
              <para>Toutes ses propriétés sont élémentaires</para>
            </listitem>

            <listitem>
              <para>Elle possède un identifiant (une clef)</para>
            </listitem>
          </itemizedlist>
        </sect3>
        <sect3>
          <title>Deuxième Forme Normale (2 FN) :</title>

          <para>Une entité est en deuxième forme normale si et seulement si
          :</para>

          <itemizedlist>
            <listitem>
              <para>Elle est en première forme normale</para>
            </listitem>

            <listitem>
              <para>Toutes ses propriétés sont en dépendance fonctionnelle
              élémentaire de l'identifiant</para>
            </listitem>
          </itemizedlist>

          <para>Soient les propriétés P1, P2 et P3. Une dépendance
          fonctionnelle (P1 -> P2) est dite élémentaire si et seulement si il
          n'existe pas de propriété (P3) incluse dans P1 en dépendance
          fonctionnelle avec P2 (P3 -> P2).</para>
        </sect3>

        <sect3>
          <title>Troisième Forme Normale (3 FN) :</title>

          <para>Une entité est en troisième forme normale si et seulement si
          :</para>

          <itemizedlist>
            <listitem>
              <para>Elle est en deuxième forme normale</para>
            </listitem>

            <listitem>
              <para>Toutes ses propriétés sont en dépendance fonctionnelle
              élémentaire directe de l'identifiant</para>
            </listitem>
          </itemizedlist>

          <para>Soient les propriétés P1, P2 et P3. Une dépendance
          fonctionnelle (P1 -> P2) est dite directe si et seulement si il
          n'existe pas de propriété (P3) telle que P1 -> P3 et P3 -> P2.</para>
        </sect3>
      </sect2>

      <sect2>
        <title>Exercices</title>

        <sect3>
          <title>Base archéologique</title>

          <para>Vous gérez une base de données archéologique dans laquelle
          vous voulez mettre les informations suivantes. Un objet est trouvé
          par une équipe donnée, dans un site donné. L'équipe est reconnue par
          le nom de son directeur, et le site par son numéro, sa longueur, sa
          largeur. Le site appartient à  une zone de fouille qui peut en
          contenir plusieurs. La zone de fouille porte le nom de la ville la
          plus proche. L'objet est identifié par un numéro, une désignation
          (qui le décrit), une catégorie (par exemple, meuble, accessoire,
          élément d'architecture, manuscrit...), par un état de complétude
          (s'il est total ou s'il est partiel comme un pied de table, un
          tesson de bouteille ou un nez de gargouille, etc...) et par un état
          de conservation ( intact, bon, à  restaurer, mauvais état, très
          mauvais). Plusieurs équipes peuvent fouiller simultanément la même
          zone de fouille, mais pas le même site. En revanche les équipes
          tournent, d'un site à  l'autre, chaque jour. <emphasis>QUESTION
          </emphasis>: proposez un modèle entité-association (ou modèle
          conceptuel des données MCD) représentant cet énoncé, en justifiant
          les cardinalités des couples entité-association, ainsi que les clés
          des entités.</para>
        </sect3>
      <sect3>
          <title>Gestion d'un bibliothèque universitaire</title>

          <para>La première étape de l'étude a dégagé les données suivantes à stocker :

<itemizedlist>
<listitem><para>Numéro d'ouvrage (NumeroOuvrage)</para></listitem>
<listitem><para>Titre de l'ouvrage (TitreOuvrage)</para></listitem>
<listitem><para>Numéro interne du livre attribué par la bibliothèque (NumeroInterne)</para></listitem>
<listitem><para>Numéro d'auteur (NumeroAuteur)</para></listitem>
<listitem><para>Nom de l'auteur (NomAuteur)</para></listitem>
<listitem><para>Numéro d'étudiant (NumeroEtudiant)</para></listitem>
<listitem><para>Nom de l'étudiant (NomEtudiant)</para></listitem>
<listitem><para>Numéro de la faculté (NumeroFaculte)</para></listitem>
<listitem><para>Nom de la faculté (NomFaculte)</para></listitem>
<listitem><para>Date du prêt (DatePret)</para></listitem>
<listitem><para>Date de retour (DateRetour)</para></listitem></itemizedlist>
</para><para>
Les contraintes :
<itemizedlist>
<listitem><para>Un ouvrage peut avoir plusieurs auteurs.</para></listitem>
<listitem><para>Un auteur peut écrire plusieurs ouvrages.</para></listitem>
<listitem><para>Un étudiant n'appartient qu'à une faculté et ne peut emprunter que trois livres à la fois.</para></listitem>
<listitem><para>Un ouvrage figure en plusieurs exemplaires dans la bibliothèque.</para></listitem>
<listitem><para>Le délai d'emprunt d'un livre est de trois semaines. Au-delà de cette période, l'étudiant doit payer une pénalité.</para></listitem>
</itemizedlist>
</para></sect3>
 <sect3>
          <title>GESTION DES CONCOURS</title>

          <para>        Une école désire gérer la participation de ses élèves à divers concours d'entrée dans la fonction pulique. Chaque élève est encadré par un tuteur de l'école.
Dans chaque concours, l'élève doit réaliser un projet qu'il choisit lui-même. Le jury
accorde toujours un nombre de points qui permet d'établir le classement (si 2 élèves ont le
même nombre de points, ils sont ex-æquos).</para><para>
On désire connaître les concours auxquels ont participé les élèves, le projet réalisé, la place
et le nombre de points qu'ils ont obtenus (NB : pour la place, on ne gère que les élèves de
l'école).</para>
<para>Les informations collectées sont :
<itemizedlist>   
<listitem><para>  nom de l'élève </para></listitem>
<listitem><para>  prénom de l'élève</para></listitem>
<listitem><para>  nom du tuteur</para></listitem>
<listitem><para>  prénom du tuteur</para></listitem>
<listitem><para>  nom du concours</para></listitem>
<listitem><para>  lieu du concours</para></listitem>
<listitem><para>  dotation globale du concours</para></listitem>
<listitem><para>  date du concours</para></listitem>
<listitem><para>  nombre de points obtenus</para></listitem>
<listitem><para>  place obtenue</para></listitem>
<listitem><para>  nom projet réalisé</para></listitem></itemizedlist>
</para>
<para>Donnez le MCD correspondant.</para>
</sect3>
        <sect3>
          <title>Gestion des HLMs</title>

          <para>La société OPHCO a la charge de la gestion des immeubles HLM des villes de plus de 5.000 habitants du département. Actuellement, on compte une douzaine de villes de ce type. La gestion des immeubles recouvre notamment l'affectation des appartements en fonction des demandes, la facturation des loyers, les travaux d'entretien, le suivi des règlements, etc... Dans l'optique d'une informatisation prochaine du système de gestion, on vous demande de poursuivre une étude des données, qui a abouti pour l'instant à : 
<itemizedlist>
	    <listitem>
	    <para>une liste des données à utiliser dans le système d'information ,</para></listitem> 
	    <listitem>
	    <para>la liste des règles de gestion à respecter.</para></listitem></itemizedlist></para>
<para>Voici la liste des données : 
<itemizedlist>
<listitem><para>Revenu Locataire</para></listitem>
<listitem><para>Loyer Mensuel</para></listitem>
<listitem><para>Type Appart 	</para></listitem>
<listitem><para>Code Gardien</para></listitem>
<listitem><para>N° Cité</para></listitem>
<listitem><para>Nom Cité</para></listitem>
<listitem><para>Code Appartement</para></listitem>
<listitem><para>N° Contrat</para></listitem>
<listitem><para>Nom Ville</para></listitem>
<listitem><para>Nom Locataire</para></listitem>
<listitem><para>N° Etage</para></listitem>
<listitem><para>Nom Gardien</para></listitem>
 <listitem><para>Garage (O/N) 	</para></listitem>
 <listitem><para>N° Immeuble</para></listitem>
 <listitem><para>Date Signature Bail</para></listitem>
 <listitem><para>Prénom Gardien</para></listitem>
 <listitem><para>Prénom Locataire</para></listitem>
 <listitem><para>Superficie Appart.</para></listitem>
	     <listitem><para>Durée Bail</para></listitem>
	    <listitem>
	    <para>N° Porte</para></listitem></itemizedlist>
</para>
<para>Voici les règles de gestion : 
<orderedlist>
<listitem><para>RG 1 - Pour une ville (de plus de 5.000 habitants) du département, il existe au moins une cité HLM.</para></listitem>
<listitem><para>RG 2 - Chaque cité HLM est identifiée par un numéro.</para></listitem>
<listitem><para>RG 3 - Pour un numéro de cité, il existe un nom de ville et un seul.</para></listitem>
<listitem><para>RG 4 - Un même nom de cité peut être utilisé pour plusieurs cités différentes, mais dans des villes différentes.</para></listitem>
<listitem><para>RG 5 - Chaque cité est surveillée par un gardien et un seul, mais un gardien peut surveiller plusieurs cités d'une même ville.</para></listitem>
<listitem><para>RG 6 - Chaque cité peut comporter jusqu'à 6 types d'appartements.</para></listitem>
<listitem><para>RG 7 - Une cité comporte plusieurs immeubles, numérotés de 1 à N. Chaque immeuble contient au moins 2 types d'appartements.</para></listitem>
<listitem><para>RG 8 - Chaque appartement est identifié par un code.</para></listitem>
<listitem><para>RG 9 - Un appartement peut disposer d'un garage, mais ce n'est pas toujours le cas.</para></listitem>
<listitem><para>RG 10 - Un appartement peut être occupé par un locataire, qui signe un contrat de location.</para></listitem>
<listitem><para>RG 11 - Chaque contrat est identifié par un numéro, et permet de fixer le montant du loyer valable pour la </para></listitem>durée du bail.
</orderedlist>
</para>
<para>Vous devez modéliser le système d'information selon le formalisme MCD</para>
        </sect3>

      </sect2>
    </sect1>


<!-- ================================MR ================================ -->


    <sect1>
      <title>Modèle relationnel</title>

      <para>Au chapitre précédent, nous avons vu le <emphasis>Modèle
      Conceptuel des Données</emphasis>. Nous allons maintenant examiner le
      niveau logique des données, et un de ses formalismes particulièrement
      adapté aux bases de données relationnelles, le <emphasis>modèle
      relationnel.</emphasis> Nous examinerons également les règles de passage
      du MCD vers le modèle relationnel. De ce type de formalisme, nous
      verrons qu'il est aisé de passer à  la représentation physique des
      données, et à  la mise en oeuvre du SI sur un système de gestion de base
      de données relationnelles (SGBDR).</para>

      <sect2>
        <title>Concepts du relationnel</title>

        <sect3>
          <title>Relations</title>

          <para>Comme pour le modèle entité - association, on définit des
          domaines dans lesquels des attributs prennent leur valeur. Une
          relation est un ensemble d'entités et sa description peut prendre la
          forme d'un tableau dans lequel chaque ligne représente une
          occurrence d'entité et chaque colonne un attribut.</para>


             

              <para>La relation <emphasis>COUREUR(nom, prénom,
              dateNaissance)</emphasis> peut se représenter par :
 
<table>
                  <title>Coureur</title>
                  <tgroup cols="3">
		  <thead>
		    <row>
		      <entry>Nom</entry>
		      <entry>Prénom</entry>
		      <entry>DateNaissance</entry>
		    </row>
		  </thead>
                  <tbody>
                      <row>
                        <entry>Payet</entry>
                        <entry>Jacques</entry>
                        <entry>01</entry>
                      </row>
                      <row>
                        <entry>Hoarau</entry>
                        <entry>Philippe</entry>
                        <entry>10</entry>
                      </row>
                    </tbody>
                  </tgroup>
                </table>
</para>
<para>
          
              La relation ETAPES (NuméroEtape, VilleDépart,
              VilleArrivée, NbKm) peut se représenter par
<table>
                  <title>Etapes</title>

                  <tgroup cols="4">
                    <tbody>
                      <row>
                        <entry><emphasis role="bold">NuméroEtape</emphasis></entry>
                        <entry><emphasis role="bold">VilleDepart</emphasis></entry>
                        <entry><emphasis role="bold">VilleArrivee</emphasis></entry>
                        <entry><emphasis role="bold">NbKm</emphasis></entry>
                      </row>
                      <row>
                        <entry>1</entry>
                        <entry>St Denis</entry>
                        <entry>St Paul</entry>
                        <entry>50</entry>
                      </row>
                      <row>
                        <entry>2</entry>
                        <entry>St Paul</entry>
                        <entry>St Leu</entry>
                        <entry>30</entry>
                      </row>
                    </tbody>
                  </tgroup>
                </table>
</para>
           
        </sect3>

        <sect3>
          <title>N-Uplets</title>

          <para>Un n-uplet est une occurrence d'une relation. Plus
          concrètement, il représente une ligne du tableau. On dit aussi
          <emphasis>t-uple</emphasis> au lieu de <emphasis>n-uplet</emphasis>.
          <emphasis role="bold">Exemple</emphasis> : (1,St Denis, StPaul, 50)
          est un <emphasis>n-uplet</emphasis> de la relation
          <emphasis>ETAPES</emphasis></para>
        </sect3>

        <sect3>
          <title>Cardinalité</title>

          <para>La cardinalité d'une relation est son nombre d'occurrence.
          Dans l'exemple précédent, la cardinalité de la relation
          <emphasis>COUREUR</emphasis> est de 2.</para>
        </sect3>

        <sect3>
          <title>Degré d'une relation</title>

          <para>Le degré d'une relation est son nombre d'attribut. . Dans
          l'exemple précédent, le degré de la relation
          <command>COUREUR</command> est de 3.</para>
        </sect3>

        <sect3>
          <title>Clef primaire</title>

          <para>Une clef primaire est constituée d'un ou plusieurs attributs
          de la relation. Elle permet d'identifier sans équivoque chaque
          n-uplet de la relation.</para>

          <para><emphasis>Dans la relation Coureur, NOM peut ne pas être
          suffisant pour distinguer les occurrences, en cas d'homonymie. On
          peut rajouter un attribut à  la relation, un numéro de coureur, qui
          devient clef primaire </emphasis></para>
        </sect3>

        <sect3>
          <title>Clef étrangère</title>

          <para>Selon les dépendances fonctionnelles observées, il peut être
          nécessaire de connaître la clef primaire d'une relation pour
          identifier un n-uplet d'une autre relation. Dans ce cas, la clef
          primaire de la première devient clef étrangère de la seconde.
          <emphasis role="bold"></emphasis></para>

          <para><emphasis><emphasis role="bold">Exemple</emphasis></emphasis>
          : soit la nouvelle relation qui permet de modéliser les temps des
          coureurs : <emphasis>TEMPS(NumCoureur, NumeroEtape,
          tempsrealisé)</emphasis>. Les clefs <emphasis>NumCoureur</emphasis>
          et <emphasis>NuméroEtape,</emphasis> clefs primaires des relations
          <emphasis>COUREUR</emphasis> et <emphasis>ETAPES,</emphasis>
          permettent d'identifier chaque n-uplet de la relation. En effet, un
          coureur ne participe qu'une seule fois à  une étape ! Ce sont donc
          les clefs étrangères de <emphasis>COUREUR.</emphasis></para>
        </sect3>

        <sect3>
          <title>Formalisme</title>

          <para>On représente chaque relation de la modélisation par :
          <command>NOMRELATION (clefPrimaire1, clePrimaire2, ..., attribut1,
          Attribut2, .. ,#clefEtrangère1,#clefEtrangère1)</command></para>

          <para><emphasis role="bold">Exemple</emphasis> : <emphasis>TEMPS
          (#NumCoureur,#NumeroEtape, tempsrealisé)</emphasis></para>

          <para><emphasis>COUREUR (NumCoureur, (nom, prénom,
          dateNaissance)</emphasis></para>

          <para><emphasis>ETAPES (NuméroEtape, VilleDépart, VilleArrivée,
          NbKm)</emphasis></para>
        </sect3>
      </sect2>

      <sect2>
        <title>Normalisation</title>

        <para>Le modèle relationnel est une modélisation des données. Nous
        pouvons le normaliser, de la même manière que nous avions normalisé le
        MCD. Ainsi, nous allons reprendre les règles de formes normales
        :</para>

        <sect3>
          <title>Première Forme Normale (1FN)</title>

          <para>Pour être en 1FN, une relation doit avoir une clef et chaque
          attribut doit être une donnée élémentaire.</para>

          <para><emphasis role="bold">Exemple</emphasis> :</para>

          <para><emphasis>EMPLOYE (NomEmployé, PrénomEmployé, AdresseEmployé,
          DateEmbauche).</emphasis></para>

          <para>Cette table pose des problèmes d'homonymie, deux employés
          peuvent avoir le même nom, donc le même identifiant !! Pour passer
          le modèle en 1FN, il faut rajouter un matricule :</para>

          <para><emphasis>EMPLOYE (MatriculeEmploye, NomEmployé,
          PrénomEmployé, AdresseEmployé, DateEmbauche)</emphasis></para>
        </sect3>

        <sect3>
          <title>Deuxième Forme Normale (2FN)</title>

          <para>Pour être en 2FN, une relation doit être en 1FN et tout
          attribut non-clef ne doit pas dépendre d'une partie de la clef.
          Seules les relations dont la clef est composée de plusieurs
          attributs sont concernés.</para>

          <para><emphasis role="bold">Exemple</emphasis> :</para>

          <para><emphasis>COMMANDE (#NÂ°Client, #N°Produit, Qte, Nomclient)
          CLIENT (N°Client, Adr, VilleClient)</emphasis></para>

          <para>Dans la relation commande, NomClient dépend seulement de la
          partie de la clef <emphasis>N°Client</emphasis>. Pour normaliser le
          modèle en 2FN, il faut donc mettre <emphasis>NomClient</emphasis>
          dans la relation <emphasis>CLIENT</emphasis> :</para>

          <para><emphasis>COMMANDE (#N°Client, #N°Produit, Qte) CLIENT
          (N°Client, Adr, VilleClient, Nomclient)</emphasis></para>
        </sect3>

        <sect3>
          <title>Troisième Forme Normale (3FN)</title>

          <para>Pour être en 3FN, une relation doit être en 2FN et tout
          attribut non clef ne doit pas dépendre d'un autre attribut non clef.
          (pas de transitivité)</para>

          <para><emphasis role="bold">Exemple</emphasis> :</para>

          <para><emphasis>FACTURE(N°Facture, dateFact, N°Fournisseur,
          RSFournisseur, AdrFournisseur, VillFournisseur)</emphasis></para>

          <para>Les attributs AdrFournisseur et VilleFournisseur dépendent de
          la propriété <emphasis>N°Facture</emphasis>, mais aussi de
          <emphasis>RSFournisseur</emphasis>, qui elle-même dépend de la clef.
          On a donc 2 dépendances fonctionnelles transitives, qu'on peut
          supprimer en créant une nouvelle relation.</para>

          <para><emphasis>FACTURE (N°Facture, dateFact, N°Fournisseur,
          #RSFournisseur) FOURNISSEUR (RSFournisseur, AdrFournisseur,
          VillFournisseur)</emphasis></para>
        </sect3>

        <sect3>
          <title>Forme Normale de Boyce - Codd (BCFN)</title>

          <para>La normalisation de Boyce - Codd a pour but de supprimer les
          dépendances fonctionnelles autre que celles de la clé vers les
          attributs non-clefs.</para>

          <para><emphasis role="bold">Exemple</emphasis> :</para>

          <para>Dans une entreprise de production qui travaille à  la commande
          de on veut pouvoir comptabiliser le temps consacré par chaque
          employé à  chaque commande. Un employé n'est pas affecté d'une
          manière fixe à  un atelier et un atelier est entièrement consacré à 
          une commande. Soit la relation suivante :</para>

          <para><emphasis>ATTRIBUTION (#employé, #Commande, NbHeures,
          N°Atelier) </emphasis></para>

          <para>La DF fonctionnelle à  supprimer dans cette relation est
          <emphasis>N°Atelier -&gt; N°Commande</emphasis>. L'application de la
          BCFN se traduit par les relations suivantes :</para>

          <para><emphasis>ATTRIBUTION (#employé, #Commande, NbHeures)
          ATELIER (N°Atelier, N°Commande)</emphasis></para>
        </sect3>
      </sect2>

      <sect2>
        <title>Passage du MCD au MPD</title>

        <para>Le passage du MCD vers le modèle relationnel se base sur
        l'application de quatre règles simples, énoncées ci-dessous. Il est à 
        noter que cette transformation peut se faire en sens inverse, en
        appliquant les mêmes règles.</para>

        <sect3>
          <title>Règle 1</title>

          <para><emphasis role="bold">Toute entité  du MCD est traduite en une
          table dont la clef primaire et les attributs proviennent de
          l'entité</emphasis><figure>
              <title>Règle 1</title>

              <mediaobject>
                <imageobject>
                  <imagedata fileref="regle1.jpg" />
                </imageobject>
              </mediaobject>
            </figure></para>
        </sect3>

        <sect3>
          <title>Règle 2</title>

          <para><emphasis role="bold">Une association binaire qui a une cardinalité
          égale à  0,1 ou 1,1 pour une entité est traduite par une clef
          étrangère ajoutée à  la table qui traduit cette entité. Cette clef
          étrangère est la clef primaire de l'entité
          associée.</emphasis><figure>
              <title>Règle 2</title>

              <mediaobject>
                <imageobject>
                  <imagedata fileref="regle2.jpg" />
                </imageobject>
              </mediaobject>
            </figure></para>
        </sect3>

        <sect3>
          <title>Règle 3</title>

          <para><emphasis role="bold">Une association binaire qui n'a pas de
          cardinalité égale à  0,1 ou 1,1 est traduite en une table dont la
          clef primaire est constituée de l'ensemble des identifiants des
          entités qui y participent.</emphasis></para>

          <figure>
            <title>Règle 3</title>

            <mediaobject>
              <imageobject>
                <imagedata fileref="regle3.jpg" />
              </imageobject>
            </mediaobject>
          </figure>
        </sect3>

 <sect3>
          <title>Règle 4</title>

          <para><emphasis role="bold">Toute association ternaire et plus est traduite par une relation dont la clef primaire est constituée de l'ensemble des identifiants des entités qui y participent.</emphasis></para>

        </sect3>
      </sect2>



      <sect2>
        <title>Exercices</title>
      <orderedlist>
	<listitem>
        <para>Reprenez les exercices du chapitre précent et donnez les modèles relationnels correpondants.</para></listitem>
	<listitem>
<para>A partir du MCD suivant, donnez le modèle relationnel correspondant : 
 <figure>
            <title>MCD HOTEL</title>

            <mediaobject>
              <imageobject>
                <imagedata fileref="mcdhotel.gif" />
              </imageobject>
            </mediaobject>
          </figure>

</para></listitem></orderedlist>
</sect2>
    </sect1>

<sect1>
    <title>Exercice de synthese : Village de vacances "Les mimosas"</title>

    <sect2>
      <title>Présentation du sujet</title>

        <para>Le village de vacances souhaite gérer de manière plus efficace
        la gestion des hébergements. Ce centre est situé à  St-paul et est
        ouvert à  des publics d'horizons variés. Il propose pour cette raison
        divers types d'hébergement : bungalows, caravanes, mobil-home. Ces
        hébergements sont situés dans divers secteurs du centre. En fait, le
        responsable du centre préfère parler de zone. Chaque type
        d'hébergement a un aménagement particulier (cf. tableau sur
        l'aménagement des typesd'hébergement).</para>

        <para>
          <table>
            <title>Les zones du centre de vacances "Les Mimosas"</title>

            <tgroup cols="2">
              <tbody>
                <row>
                  <entry>
                    <emphasis>Code Zone</emphasis>
                  </entry>

                  <entry>
                    <emphasis>Nom zone</emphasis>
                  </entry>
                </row>

                <row>
                  <entry>1</entry>

                  <entry>La Belle époque</entry>
                </row>

                <row>
                  <entry>2</entry>

                  <entry>Les années folles</entry>
                </row>

                <row>
                  <entry>3</entry>

                  <entry>Les années Twist</entry>
                </row>

                <row>
                  <entry>4</entry>

                  <entry>Far West</entry>
                </row>
              </tbody>
            </tgroup>
          </table>

          
        </para>

        <para>
          <table>
            <title>Les différents types d'héergement du centre de vacances
            "Les mimosas"</title>

            <tgroup cols="3">
              <colspec align="center" />

              <thead>
                <row>
                  <entry align="center">Code Zone</entry>

                  <entry>Nom Zone</entry>

                  <entry align="center">Nombre places</entry>
                </row>
              </thead>

              <tbody>
                <row>
                  <entry>1</entry>

                  <entry>Bungalow</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>6</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>2</entry>

                  <entry>Caravane</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>4</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>3</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Mobil-home</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>6</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>
              </tbody>
            </tgroup>
          </table>

          <table>
            <title>Les différents types d'équipements</title>

            <tgroup cols="3">
              <colspec align="center" />

              <thead>
                <row>
                  <entry align="center">Type d'hébergement</entry>

                  <entry align="center">Code d'équipement</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Equipement</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>
              </thead>

              <tbody>
                <row>
                  <entry>Bungalow</entry>

                  <entry>1</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Réfrigérateur</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Bungalow</entry>

                  <entry>2</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Cuisinière</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Bungalow</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>3</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Salon de jardin</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Bungalow</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>4</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Cafetière</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Bungalow</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>5</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Couvertures</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Bungalow</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>6</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Draps</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Bungalow</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>7</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Friteuse</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Caravane</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>8</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Bidon d'eau</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Caravane</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>9</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Plaque de cuisson</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Caravane</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>5</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Couvertures</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Caravane</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>4</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Cafetière</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Mobil-home</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>2</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Cuisinière</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Mobil-home</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>3</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Salon de jardin</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Mobil-home</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>4</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Cafetière</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Mobil-home</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>5</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Couvertures</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>Mobil-home</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>1</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Réfrigérateur</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>
              </tbody>
            </tgroup>
          </table>

          <table>
            <title>Les habitations</title>

            <tgroup cols="4">
              <colspec align="center" />

              <thead>
                <row>
                  <entry align="center">Numéro d'habitation</entry>

                  <entry align="center">Zone</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Type d'hébergement</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Remarques</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>
              </thead>

              <tbody>
                <row>
                  <entry>1</entry>

                  <entry>La belle époque</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Bungalow</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Petit jardin devant le bungalow</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>2</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Les années folles</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Caravane</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>RAS</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>3</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Les années Twist</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Caravane</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>RAS</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>4</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Far-west</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Caravane</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>RAS</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>5</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>La belle époque</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Caravane</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Télévision</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>6</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>La belle époque</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>Mobil-home</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>RAS</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>

                <row>
                  <entry>...</entry>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>...</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>...</entry>
                      </row>
                    </tbody>
                  </entrytbl>

                  <entrytbl cols="1">
                    <tbody>
                      <row>
                        <entry>...</entry>
                      </row>
                    </tbody>
                  </entrytbl>
                </row>
              </tbody>
            </tgroup>
          </table>
        </para>
 
    </sect2>

    <sect2>
      <title>Travail à  faire</title>

      <para>Vous devez me présenter </para>

      <orderedlist>
        <listitem>
          <para>Le dictionnaire des données</para>
        </listitem>

        <listitem>
          <para>Le modèle conceptuel des données</para>
        </listitem>

        <listitem>
          <para>Le modèle logique des données (modèle relationnel).</para>
        </listitem>
      </orderedlist>
    </sect2>
  </sect1>

  <sect1>
    <title>Exercice de synthèse : gestion d'une vidéothèque personnelle</title>

    <sect2>
      <title>Présentation du sujet</title>

      <para>On souhaite réaliser la gestion d'une vidéothèque personnelle,
      sachant que le prêt à  ses amis devient vite un casse tête et une source
      de perte non négligeable ;-). Pour gérer ce problème, on dispose des
      informations suivantes : </para>

      <itemizedlist>
        <listitem>
          <para>Un film possède les caractéristiques suivantes : Un code, un
          titre, une année de sortie, une durée et un résumé.</para>
        </listitem>

        <listitem>
          <para>Dans les films jouent des acteurs, ayant bien sûr un nom et un
          prénom.</para>
        </listitem>

        <listitem>
          <para>Chaque film est d'un genre particulier</para>
        </listitem>

        <listitem>
          <para>On dispose dans notre vidéothèque de plusieurs supports : VHS,
          DIVX, DVD, mà¹ais on ne prete que les VHS</para>
        </listitem>

        <listitem>
          <para>On prend soin d'enregistrer les personnes empruntant les
          films, en retenant leur adresse et leur téléphone. </para>
        </listitem>
      </itemizedlist>
    </sect2>

    <sect2>
      <title>Travail à  faire</title>
      <para>Vous devez me présenter :</para>

      <orderedlist>
        <listitem>
          <para>Le dictionnaire des données</para>
        </listitem>
        <listitem>
          <para>Le modèle conceptuel des données</para>
        </listitem>
        <listitem>
          <para>Le modèle logique des données (modèle relationnel).</para>
        </listitem>
      </orderedlist>

    </sect2>
  </sect1>
 <sect1>
    <title>Exercice de synthèse : Gestion d'une entreprise de plomberie</title>

    <sect2>
      <title>Présentation du sujet</title>

      <para>
Il s'agit d'une petite entreprise artisanale de plomberie, chauffage et d'électricité qui travaille pour des particuliers qui construisent ou rénovent leur maison.</para>

<para>
 La société emploie :
 <itemizedlist>   <listitem><para> M. Durand gérant de l'entreprise</para></listitem>
   <listitem><para> Mme Durand secrétariat,</para></listitem>
   <listitem><para> M. Durand fils chef de chantier</para></listitem>
   <listitem><para> M. Duval chef magasinier</para></listitem>
   <listitem><para> des ouvriers</para></listitem> </itemizedlist> 
</para><para>
C'est M. Durand qui s'occupe des contacts avec la clientèle et de la négociation des devis : après visite du client, il fait une offre (prestation, prix). Une discussion s'engage avec le client qui peut amener à modifier le devis initial. Par contre, le devis signé ne peut plus être modifié. Un devis se voit attribuer un numéro. Au final le devis devra faire apparaître les données suivantes :
 <itemizedlist>
        <listitem><para> numéro du devis ( calcué de façon incrémentale )</para></listitem>
   <listitem><para> identification complète du client ( nom, prénom,adresse,téléphone,fax,e-mail)</para></listitem>
   <listitem><para> lieu des travaux ( adresse complète )</para></listitem>
   <listitem><para> la date de signature</para></listitem>
   <listitem><para> la date du début des travaux</para></listitem>
   <listitem><para> descriptif des prestations et coûts des prestations</para></listitem>
   <listitem><para> montant global du devis</para></listitem> </itemizedlist>
</para><para>
M. Durand n'accepte un chantier que si le client a signé au préalable un devis. Lorsque l'affaire est conclue, celle-ci est enregistrée et mise dans le planning des chantiers. Il faut alors rechercher les articles et les fournitures à commander aux fournisseurs : tout chantier doit démarrer à la date promise au client.
Un chantier est caractérisé par :
 <itemizedlist>
        <listitem> <para>numéro</para></listitem>
   <listitem><para> identification complète du client</para></listitem>
   <listitem><para> lieu des travaux</para></listitem>
   <listitem><para> date début de chantier</para></listitem>
   <listitem><para> durée chantier</para></listitem>
   <listitem><para> liste des ouvriers affectés</para></listitem>
   <listitem><para> liste des fournitures nécessaires  </para></listitem> </itemizedlist>
</para><para>
Les fournitures sont commandées directement aux représentants de différents grossistes lors de leur passage dans l'entreprise.
C'est Mme Durand qui enregistre les devis signés en fin de semaine. Elle prépare les commandes aux fournisseurs (qui doivent être visées par M. Durand) et donne au magasinier la liste des articles à sortir au début du chantier. Elle est aussi en charge de la comptabilité.</para><para>
Le chef magasinier est en charge des planning de travail, il choisit les produits à commander en fonction des devis et des catalogues fournisseurs, et organise les travaux sur les chantiers.
M. Duval, chef magasinier, trie les articles lors de la livraison. Les articles courants (tuyaux de cuivre, colliers...) sont rangés dans des rayons par famille de produits et les articles spécifiques à un chantier sont rangés dans un casier spécial au nom du client.
Un article est référencé par :
 <itemizedlist>
        <listitem>
          <para>Code famille</para></listitem>
   <listitem><para> Code produit</para></listitem>
   <listitem><para> Libellé produit</para></listitem>
   <listitem><para> Quantité en stock</para></listitem>
   <listitem><para> Prix produit HT</para></listitem> </itemizedlist>
</para><para>
On prépare un chantier huit jours avant son ouverture pour s'assurer que les articles nécessaires sont disponibles. Si ce n'est pas le cas, la secrétaire effectue une relance urgente auprès des fournisseurs. C'est lors de la préparation du chantier que sont affectés les ouvriers par le chef de chantier. 

 </para>


    </sect2>

    <sect2>
      <title>Travail à  faire</title>
      <para>On vous fournit le dictionnaire des données suivant :</para>
 <itemizedlist>
   <listitem><para>dDevis: Identifiant devis </para></listitem>
   <listitem><para>DateS :	Date signature devis </para></listitem>
   <listitem><para>IdCli :	Identifiant client 	</para></listitem>
   <listitem><para>Nom :	Nom du client 	</para></listitem>
   <listitem><para>Adresse Fac :	Adresse de facturation client </para></listitem>
   <listitem><para>Adresse chantier :	Adresse du chantier client </para></listitem>
   <listitem><para>Tel: 	téléphone client 	</para></listitem>
   <listitem><para>Idchantier :	Identifiant chantier 	</para></listitem>
   <listitem><para>Date début chantier 	</para></listitem>
   <listitem><para>Durée chantier 	</para></listitem>
   <listitem><para>IdPrestation :	Identifiant Tache effectuée sur le chantier </para></listitem>
   <listitem><para>Libelle prestation 	</para></listitem>
   <listitem><para>Coût prestation :	coût d'une tache 	</para></listitem>
   <listitem><para>Montant global devis :	Cout chantier à facturer ht 	(somme (coût chaque prestation) + somme (prix*qté) chaque prod)</para></listitem>
   <listitem><para>Montant global devis TTC :	Cout chantier à facturer ttc 	(Mont glob. devis * TVA)</para></listitem>
   <listitem><para>IdOuvriers :	Ouvrier travaillant ds l'entreprise 	</para></listitem>
   <listitem><para>Nom ouvrier :	Nom Ouvrier travaillant ds l'entreprise 	</para></listitem>
   <listitem><para>Ouvriers affectés :	Ouvrier de l'entreprise affecté à un chantier 	</para></listitem>
   <listitem><para>Code produit :	Id produit 	</para></listitem>
   <listitem><para>Libelle Produit :	Libelle du produit 	</para></listitem>
   <listitem><para>Prix Produit ht :	prix du produit à facturer 	</para></listitem>
   <listitem><para>Qté en stock 	</para></listitem>
   <listitem><para>Qté prod :	Qté prod affectée à chantier 	</para></listitem>
   <listitem><para>Code famille :	Identifiant famille produit 	</para></listitem>
   <listitem><para>Libelle famille :	Libelle famille produit 	</para></listitem>
 </itemizedlist>
<para>Vous devez faire : 
      <orderedlist>
        <listitem>
          <para>Le modèle conceptuel des données</para>
        </listitem>
        <listitem>
          <para>Le modèle logique des données (modèle relationnel).</para>
        </listitem>
      </orderedlist>
</para>
    </sect2>
  </sect1>
  <sect1>
    <title>Projet : gestion de la formation</title>

    <sect2>
      <title>Présentation du sujet</title>

      <para>Nous allons tenter de modéliser la formation que vous suivez, de manière à créer une application internet permettant de :  </para>

      <itemizedlist>
        <listitem>
          <para>Avoir la liste et les détails de chaque stagiaire</para>
        </listitem>

        <listitem>
          <para>Connaître les différents modules de la formation</para>
        </listitem>

        <listitem>
          <para>Avoir la liste des formateurs qui interviennent</para>
        </listitem>

        <listitem>
          <para>Disposer du référentiel complet de la formation</para>
        </listitem>

        <listitem>
          <para>Suivre les différentes évaluations de chaque séquence (mode d'évaluation et résultat) </para>
        </listitem>

        <listitem>
          <para>Avoir la liste des compétences et de leur niveau d'acquisition pour chaque stagiaire. </para>
        </listitem>
      </itemizedlist>
    </sect2>

    <sect2>
      <title>Travail à  faire</title>
      <para>Concevoir le MCD qui permettra de créer la base de données qui nous servira pour l'application de gestion de la formation. En donner le modèle relationnel. </para>


    </sect2>
  </sect1>
</article>
