VIIDATA Logiciel de gestion de bases de données MySQL

Document Sample
VIIDATA Logiciel de gestion de bases de données MySQL Powered By Docstoc
					                         Matthias Meusburger

                   IUP 3 Génie Mathématiques et
                           Informatique

                          Année 2002-2003




      Logiciel de gestion de bases de données MySQL




Tuteur universitaire :             Responsable en entreprise :
Laurent Philippe                   Didier Guth




I. Sommaire                                                      1
                     I.    REMERCIEMENTS




      Tout d’abord, merci à Didier Guth pour m’avoir confié la réalisation
de ce projet, ainsi qu’à Jean-Philippe Heitz pour son soutien.


Je tiens également à remercier l’équipe pédagogique de l’IUP GMI de
Besançon pour la formation apportée durant l’année de Licence, et bien sûr
mon tuteur universitaire Laurent Philippe.


Enfin, je remercie Alsace Technologie, l’ANVAR, et la DRIRE pour avoir
soutenu ce projet.




I. Remerciements                                                         2
                                II. TABLE DES MATIERES
I.      Remerciements ............................................................................................... 2
II.         Table des matières ...................................................................................... 3
III.        Introduction ................................................................................................. 5
IV.         Présentation de l’entreprise......................................................................... 6
V.          Présentation du sujet ................................................................................... 7
VI.         VIIDATA .................................................................................................... 8
     VI. 1.   TECHNOLOGIES UTILISEES ....................................................................................... 8
       VI.1.a. MySQL ................................................................................................................ 8
       VI.1.b. PHP ..................................................................................................................... 8
       VI.1.c. HTML .................................................................................................................. 8
       VI.1.d. Javascript ............................................................................................................ 9
       VI.1.e. Feuilles de style CSS ........................................................................................... 9
     VI. 2.   ORGANISATION DE L’APPLICATION ........................................................................ 10
       VI.2.a. Organisation conceptuelle ................................................................................ 10
       VI.2.b. Organisation physique ...................................................................................... 11
     VI. 3.   UN LOGICIEL COMPLET .......................................................................................... 13
       VI.3.a. Module de gestion des bases de données .......................................................... 13
            VI.3.a.i      Opérations sur les bases de données ........................................................................ 13
            VI.3.a.ii     Opérations sur les tables .......................................................................................... 14
            VI.3.a.iii    Opérations sur les champs ....................................................................................... 16
            VI.3.a.iv     Opérations sur les clés ............................................................................................. 16
        VI.3.b.        Module de gestion des données ........................................................................ 17
            VI.3.b.i Insertion d’enregistrements ..................................................................................... 17
            VI.3.b.ii Affichage du contenu d’une table ........................................................................... 17
            VI.3.b.iii Modification et suppression d’enregistrements....................................................... 18
        VI.3.c.        Module d’interrogation d’une base de données ............................................... 18
            VI.3.c.i      Création d’une requête............................................................................................. 18
            VI.3.c.ii     Affichage des résultats ............................................................................................ 19
        VI.3.d.        Module de gestion des utilisateurs.................................................................... 20
            VI.3.d.i      Liste des utilisateurs ................................................................................................ 20
            VI.3.d.ii     Création d’un utilisateur .......................................................................................... 20
            VI.3.d.iii    Affichage des propriétés d’un utilisateur ................................................................ 21
            VI.3.d.iv     Modification des propriétés d’un utilisateur ........................................................... 21
            VI.3.d.v      Suppression d’un utilisateur .................................................................................... 22
       VI.3.e. Options .............................................................................................................. 23
       VI.3.f.  Sélection d’une base de données ...................................................................... 23
     VI. 4.    UN LOGICIEL MULTI-UTILISATEURS ....................................................................... 24
       VI.4.a. Gestion des identités ......................................................................................... 24
       VI.4.b. Paramètres d’un utilisateur .............................................................................. 24
       VI.4.c. Accès simultané................................................................................................. 24
       VI.4.d. Types d’utilisateurs ........................................................................................... 24
     VI. 5.    UN LOGICIEL CONVIVIAL ET DIDACTIQUE .............................................................. 25
       VI.5.a. Ergonomie ......................................................................................................... 25
            VI.5.a.i      L’entête de page....................................................................................................... 25
            VI.5.a.ii     Le corps de page...................................................................................................... 26

II. Table des matières                                                                                                                  3
          VI.5.a.iii Le pied de page ....................................................................................................... 27
      VI.5.b.        Aide ................................................................................................................... 28
      VI.5.c.        Traduction complète ......................................................................................... 28
      VI.5.d.        Assistants .......................................................................................................... 28
          VI.5.d.i L’assistant de création d’utilisateurs ....................................................................... 28
          VI.5.d.ii L’assistant de création de bases .............................................................................. 31
VII. Autres aspects du stage ............................................................................. 32
   VII. 1.       TRANSFERTS DE COMPETENCES ............................................................................. 32
   VII. 2.       GESTION DE PROJET ............................................................................................... 32
   VII. 3.       GRAPHISME............................................................................................................ 32
   VII. 4.       IMPLICATION DANS LA VIE DE L’ENTREPRISE ......................................................... 32
VIII. Compétences acquises et difficultés rencontrées...................................... 33
   VIII. 1. COMPETENCES ACQUISES ....................................................................................... 33
     VIII.1.a. Pédagogie ......................................................................................................... 33
     VIII.1.b. Conception d’Interfaces Homme-Machine ....................................................... 33
     VIII.1.c. Technologies utilisées ....................................................................................... 33
   VIII. 2. DIFFICULTES RENCONTREES .................................................................................. 34
     VIII.2.a. Javascript .......................................................................................................... 34
     VIII.2.b. Compatibilité entre navigateurs ....................................................................... 34
IX.       Prospectives .............................................................................................. 35
   IX. 1.        LIMITES ET EVOLUTIONS POSSIBLES ....................................................................... 35
   IX. 2.        AVENIR DE L’APPLICATION .................................................................................... 35
X.        Conclusion ................................................................................................ 36
XI.       Bibliographie............................................................................................. 37
XII. Table des illustrations ............................................................................... 38
XIII. Glossaire ................................................................................................... 39




II. Table des matières                                                                                                              4
                              III. INTRODUCTION


      J’ai choisi d’effectuer mon stage de troisième année d’IUP chez Voltigeur
Informatique, jeune société sélestadienne présentée dans le quatrième chapitre.

Mon travail a été de développer VIIDATA, une application multi-utilisateurs de gestion
de bases de données MySQL complète et conviviale, dont les différents aspects sont
décrits dans le chapitre six après une explication du sujet au chapitre cinq.

Mais au-delà du travail de développement en lui-même, j’ai été amené à mettre en
œuvre des compétences variées au sein de l’entreprise. Les autres aspects du stage
constituent donc le septième chapitre de ce rapport.

Cependant, comme lors de toute conduite de projet, des difficultés viennent entraver le
déroulement des opérations. Heureusement, ces problèmes permettent pour la plupart
l’acquisition de nouvelles compétences, renforçant ainsi l’expérience personnelle et
professionnelle, comme le précise le chapitre huit.

Une conclusion prospective sur VIIDATA vient compléter la synthèse sur mon travail
au neuvième chapitre.

Finalement, mon appréciation personnelle sur cette expérience termine ce rapport au
chapitre dix.




Note :
Voltigeur Informatique et le logo associé sont des marques déposées par la société Voltigeur
Informatique.
Les logiciels cités dans ce rapport et leurs logos sont la propriété de leurs auteurs respectifs.



III. Introduction                                                                              5
           IV. PRESENTATION DE L’ENTREPRISE



                                Créée en janvier 2002 par Didier Guth, Voltigeur
                         Informatique est une jeune SARL basée à Sélestat. Son activité
                         informatique est résolument tournée vers la maintenance, bien
                         qu’elle y soit représentée sous toutes ses formes : expertise,
                         conseil, installation et dépannage de matériels et logiciels,
                         migration d'applications et de systèmes d'exploitation, veille
                         technologique, formation et mise à jour de sites internet.




L’entreprise compte un seul salarié, Jean-
Philippe Heitz, technicien de son état, capable
de résoudre les problèmes logiciels, matériels
et réseaux.

Le nom de la société est emprunté aux
fantassins      volontaires    de l’armée
napoléonienne qui, très mobiles, allaient
intervenir en terrain hostile.




            Cela en dit long sur la philosophie de Voltigeur Informatique, qui intervient
            sur tous types de matériels, y compris ceux que la société n’a pas vendus, et
            sur tous types d’installations, y compris celles qu’elle n’a pas mises en
            œuvre.




IV. Présentation de l’entreprise                                                       6
                      V. PRESENTATION DU SUJET


        Les bases de données1 sont devenues omniprésentes dans bien des domaines de
l’informatique actuelle : sites Internet commerciaux ou personnels, gestion d’entreprise,
intranets…

Si les grandes sociétés se tournent naturellement vers des systèmes de gestion de bases
de données (SGBD) extrêmement puissants tels Oracle, les particuliers et petites ou
moyennes entreprises, qui n’ont pas de besoins aussi importants, se trouvent souvent
lésés par les SGBD moins évolués, mais dont le coût reste tout de même élevé.

C’est dans ce contexte que l’on voit se développer de manière importante des SGBD
tels que MySQL, nés du monde du logiciel libre, indépendants d’un système
propriétaire et, la plupart du temps, gratuits !

Cependant, si MySQL est suffisamment puissant et abouti pour assurer les besoins de la
majorité des utilisateurs, son maniement est plus qu’ardu et inabordable pour un
néophyte2.

Ainsi, il est devenu nécessaire de disposer pour ce SGBD d’une interface graphique
conviviale et pratique, afin que chacun puisse créer et exploiter une base de données
pour un coût minimum et en un temps d’apprentissage très court.

De ce besoin sont nés différents logiciels de gestion de bases de données MySQL, tels
PHPMyAdmin ou Eskuel, mais tous semblent destinés en priorité à un public
d’informaticiens avertis, et aucun n’est doté d’explications ou d’outils nécessaires aux
débutants.

De son côté, Voltigeur Informatique souhaitait pouvoir mettre en œuvre des bases de
données MySQL pour ses clients en un temps minimum et éventuellement leur proposer
un logiciel pour que ceux-ci puissent entretenir et exploiter ces bases.

C’est ainsi que l’idée de développer une telle application est née, et c’est le travail qui
m’a été confié durant ce stage.

Ce projet a bénéficié d’une convention PRISME dont les partenaires sont l’IUP GMI de
Besançon, Voltigeur Informatique, la DRIRE, Alsace Technologie et l’ANVAR.




1
  Les termes définis dans le glossaire sont présentés en bleu lors de leur première apparition dans le
rapport.
2
  Un exemple d’utilisation de MySQL est présenté en Annexe III page 5.

V. Présentation du sujet                                                                                 7
                                     VI. VIIDATA

         VIIDATA (prononcez « Vé-i-data ») est le sigle pour Voltigeur Informatique
Interactive DATA. Il s’agit d’une interface graphique qui se place entre MySQL et
l’utilisateur.


VI. 1. Technologies utilisées1
      VI.1.a. MySQL
             MySQL est un système de gestion de bases de données, au même titre
      qu’Access ou Oracle. Cependant, à la différence de ces derniers, MySQL est un
      logiciel libre. De plus, il est disponible pour un grand nombre d’environnements,
      comme Windows, Linux, MacOs et FreeBSD pour ne citer que les plus connus.
      Sa robustesse et sa fiabilité pour des bases de données de taille moyenne en font
      l’outil idéal pour le grand public et les petites ou moyennes entreprises.


      VI.1.b. PHP
            PHP est un langage de script HTML côté serveur, c’est-à-dire qu’il va
      générer des pages HTML dynamiquement2. PHP s’est complètement intégré au
      World Wide Web ces dernières années, non seulement sur des sites
      professionnels, mais aussi sur des pages personnelles. Cependant, PHP ne se
      limite pas à la création de pages Internet, car étant un langage complet et évolué,
      il permet également de développer des applications à part entière.

      Le choix d’utiliser PHP était naturel pour une application de ce type, au vu de ses
      caractéristiques. En effet, le résultat produit par PHP étant du HTML, n’importe
      quelle machine peut se connecter sans distinction à VIIDATA3, pour peu qu’elle
      possède un navigateur Internet. De plus, PHP possède une API MySQL très
      évoluée.


      VI.1.c. HTML
            Si PHP réalise les traitements et interactions avec MySQL, c’est le langage
      HTML qui, au final, permet de mettre en forme les différents écrans de
      l’application, d’afficher des images, des tableaux ou des formulaires. Tout ce qui
      relève de l’affichage lui incombe.



1
  Les versions des différents logiciels utilisés sont précisées en Annexe VII page 13.
2
  Le fonctionnement de PHP est schématisé en Annexe IV page 6.
3
  Les différentes configurations d’utilisation de VIIDATA sont décrites en Annexe VI page 10.

VI. VIIDATA                                                                                     8
    VI.1.d. Javascript
          Javascript est un langage de script côté client permettant d’interagir
    dynamiquement avec une page HTML.
    Ce langage est présent de manière assez importante dans VIIDATA, puisque c’est
    lui qui assure tous les contrôles des actions de l’utilisateur : dans un formulaire,
    c’est lui qui va vérifier si tous les champs sont remplis, si tous les noms sont
    valides, qu’au moins une case est cochée…

    Pourquoi ne pas avoir utilisé PHP pour effectuer tous ces contrôles ? Tout
    simplement parce que PHP s’exécute côté serveur, alors que Javascript se situe
    côté client. Ainsi, pour effectuer ce type de contrôles avec PHP, les informations
    devraient être envoyées au serveur, puis celui-ci devrait renvoyer une page
    indiquant que les informations étaient erronées. Ensuite, l’utilisateur devrait les
    corriger, pour finalement les renvoyer. Cela induirait d’une part une surcharge de
    trafic inutile, et d’autre part, serait moins agréable pour l’utilisateur. Avec
    Javascript, les contrôles sont faits avant que les informations ne soient envoyées
    au serveur.


    VI.1.e. Feuilles de style CSS
        Les feuilles de style CSS ont été utilisées pour obtenir une mise en page et
    des caractéristiques graphiques homogènes sur toute l’application. Elles
    permettent notamment de définir quelles propriétés aura un élément HTML, et ce,
    quel que soit son emplacement dans l’application.




VI. VIIDATA                                                                           9
VI. 2. Organisation de l’application
         VI.2.a. Organisation conceptuelle
              L’application est organisée en quatre modules (fig. 1) qui correspondent à
         des domaines d’actions différents : gestion des bases de données, gestion des
         données, gestion des utilisateurs, interrogation d’une base de données.

         Cette approche structurelle volontairement multi-blocs est due à la capacité multi-
         utilisateurs1 de VIIDATA. En effet, on facilite ainsi la répartition des tâches au
         sein d’une gestion d’entreprise ou d’équipe. En considérant que les personnes qui
         vont administrer les bases de données, celles qui vont les remplir et celles qui vont
         les consulter peuvent être différentes, chacun peut se contenter de se familiariser
         avec le module qui est propre à sa fonction, et ainsi prendre en main l’application
         plus rapidement.




           Gestion des bases
                                             Gestion des données
             de données




                                                                         Modules de
                                                                          VIIDATA


                Gestion des                   Interrogation d'une
                utilisateurs                   base de données




                                             Sélection d'une base            Autres
           Options de VIIDATA                  de données par          fonctionnalités de
                                                    défaut
                                                                           VIIDATA



                                     Figure 1 : Structure de VIIDATA




1
    Voir chapitre VI.4 : un logiciel multi-utilisateurs, page 24.

VI. VIIDATA                                                                                 10
         VI.2.b. Organisation physique
       Cette partie, plus technique, traite de la manière dont l’application est organisée
en termes de fichiers et de code source.

Les différents fichiers sources constituant l’application (70 au total) sont stockés dans
plusieurs répertoires correspondants aux modules auxquels ils appartiennent, permettant
ainsi un entretien ou une consultation ultérieure plus aisée.

Les tâches génériques (i.e : tâches identiques, mais utilisées dans des contextes
différents) ont été écrites sous formes de fonctions, et stockées dans un répertoire
« bibliothèque », dans lequel chaque fichier contient les fonctions propres à un module
ou à une thématique donnée.

Par exemple, dans le répertoire bibliothèque, le fichier « gestion_donnees » contient les
fonctions concernant le module de gestion des données. Une fonction appartenant à ce
fichier pourrait par exemple afficher la liste des tables d’une base de données.
De même, le fichier « io » contient les fonctions attenantes aux opérations sur disque
dur (io est l’abréviation de Input/Output : Entrée/Sortie). Une fonction appartenant à ce
fichier pourrait par exemple calculer la taille occupée par tous les fichiers situés dans un
répertoire et ses sous-répertoires.

Ce découpage en fonctions permet de réduire la taille de l’application : une fonction
n’est écrite qu’à un endroit, mais est utilisable à volonté.
D’autre part, ces fonctions pourront éventuellement être réutilisées dans d’autres
contextes que l’application VIIDATA en elle-même, comme la création d’une page
Internet en PHP.

De même, les éléments d’affichage communs à toutes les pages de VIIDATA ne sont
pas écrits dans chaque fichier source, mais dans des fichiers distincts, présents dans la
bibliothèque, et qui seront inclus au besoin. Par exemple, l’entête de page 1 sera générée
automatiquement à partir de chaque page, en appelant, avec différents paramètres, le
fichier contenant les informations requises.

La figure 2 illustre ce principe de découpage de l’application et de factorisation du code
source.

On peut noter une exception dans cette organisation : la barre de navigation2 n’est pas
écrite sous forme de fonction, mais utilise les possibilités de programmation objet de
PHP, afin de pouvoir lui conserver des propriétés constantes tout au long d’une session.




1
    Voir chapitre VI.5.a.i : l’entête de page, page 26.
2
    Idem

VI. VIIDATA                                                                              11
          Figure 2 : Organisation physique d’une page de l’application


VI. VIIDATA                                                              12
VI. 3. Un logiciel complet
      VIIDATA permet d’effectuer la plupart des opérations concernant les bases de
données, de leur création à leur exploitation en passant par leur entretien.
Voici, par module, la description des fonctionnalités implémentées dans VIIDATA
accompagnée de quelques captures d’écran.

     VI.3.a. Module de gestion des bases de données

          Ce module concerne toutes les opérations d’administration des bases de
     données. Ainsi, il contient toutes les fonctionnalités liées à la structure des bases
     de données, mais aussi les utilitaires de sauvegarde et de restauration.

        VI.3.a.i Opérations sur les bases de données

             Les opérations de création et de suppression de bases de données sont
         bien évidemment prises en charge.

         Ce module permet également de sauvegarder une partie ou la totalité d’une
         base de données, avec la possibilité de choisir de sauvegarder uniquement les
         données, uniquement la structure, ou les deux. Le format du fichier de sortie
         est paramétrable. Ainsi, on pourra définir le ou les caractères qui vont séparer
         les champs, ceux qui vont entourer les champs, si les champs de type texte
         doivent être entourés et non les autres, et les caractères de retour à la ligne.
         On peut restaurer une sauvegarde, qu’elle ait été créée avec VIIDATA ou
         non : tout fichier comportant des instructions SQL est pris en charge.

         Finalement, il est possible d’afficher la structure d’une base de données
         (fig. 3) et de l’imprimer. Dans le cas de l’impression, une nouvelle fenêtre
         affichant la structure sera ouverte, mais sans entête ni pied de page, sans
         couleurs et affichée par une police avec empattement. La boîte de dialogue
         d’impression du navigateur sera alors automatiquement ouverte.




VI. VIIDATA                                                                            13
              Figure 3 : Affichage de la structure d’une base de données



       VI.3.a.ii Opérations sur les tables

            On peut créer (fig. 4), modifier, supprimer, ajouter, renommer une table
       et afficher les champs qu’elle contient. (fig. 5).

       Il est également possible d’ajouter un commentaire à une table et changer le
       type de stockage de celle-ci.

       Par l’intermédiaire de MySQL, on peut optimiser une table ou savoir si celle-
       ci est déjà optimisée.

       Finalement, on peut vider une table, c’est-à-dire en conserver la structure
       mais effacer toutes les données qu’elle contient.




VI. VIIDATA                                                                      14
                  Figure 4 : Création d’une table




              Figure 5 : Liste des champs d’une table




VI. VIIDATA                                             15
             VI.3.a.iii Opérations sur les champs

                    Il est possible de créer, modifier (fig. 6) et supprimer un champ.
               Tous les types et les attributs de champ disponibles dans MySQL sont
               utilisables avec VIIDATA1.
               VIIDATA, comme MySQL, gère les valeurs auto-incrémentées et permet
               d’autoriser ou non la valeur « Null » (pas de valeur).

               On peut également ajouter un champ, et décider de la position qu’il va
               occuper au sein de la table.




                         Figure 6 : Modification des propriétés d’un champ



             VI.3.a.iv Opérations sur les clés

                     Il est possible de créer, modifier, supprimer, ajouter une clé et en afficher
               la liste (fig. 7).
               Tous les types de clés disponibles dans MySQL sont utilisables avec
               VIIDATA2.
               Une clé peut porter sur plusieurs champs.




                                  Figure 7 : Liste des clés d’une table

1
    La liste des types et attributs de champ est disponible en Annexe V.1 page 7.
2
    La liste des types de clé est disponible en Annexe V.1 page 7.

VI. VIIDATA                                                                                    16
        VI.3.b. Module de gestion des données

               Ce module relève de l’utilisation de la base. De ce fait, toutes les opérations
          liées aux données y sont présentes.

             VI.3.b.i Insertion d’enregistrements
                    Il est possible d’insérer de nouveaux enregistrements dans une table,
              manuellement (fig. 8) ou à partir d’un fichier.
              Si l’insertion est manuelle, l’utilisateur peut se servir d’une partie des
              fonctions MySQL : mettre une chaîne de caractères en majuscules ou en
              minuscules, insérer la date courante, insérer la valeur absolue d’un nombre1…
              Dans le cas d’une insertion à partir d’un fichier, il peut préciser le format de
              ce fichier, avec les mêmes possibilités que lors d’une sauvegarde de base de
              données.




                         Figure 8 : Insertion manuelle d’enregistrements

             VI.3.b.ii Affichage du contenu d’une table
                     Le contenu d’une table peut être parcouru par l’utilisateur (fig. 9).
              Celui-ci peut alors choisir de n’afficher qu’une partie des enregistrements, et
              éventuellement définir un tri croissant ou décroissant portant sur un des
              champs.
              Il est possible de se déplacer au sein du jeu d’enregistrements grâce aux
              boutons de navigation (« << », « < », « > », « >> »). L’utilisateur peut
              également choisir le nombre d’enregistrements à afficher par page et à quel
              enregistrement commencer.
              Différents traitements sont effectués suivant la nature du champ affiché.
              Ainsi, dans le cas de champs de type « Blob » (fichier binaire), les valeurs ne
              sont pas affichées, compte tenu de la taille et de la nature d’un tel champ.
              Dans le cas de champs de type « Texte » (fichier texte), seuls les premiers
              caractères sont affichés, mais l’utilisateur peut décider d’en afficher la
              totalité.


1
    La liste complète des fonctions MySQL présentes dans VIIDATA est disponible en Annexe V.1 page 8.

VI. VIIDATA                                                                                        17
              Les valeurs « Null » (pas de valeur) sont affichées en italique pour pouvoir
              les repérer rapidement.




                              Figure 9 : Affichage des enregistrements

             VI.3.b.iii Modification et suppression d’enregistrements
                  On peut également supprimer un enregistrement ou le modifier avec la
              possibilité d’utiliser les fonctions MySQL disponibles sous VIIDATA.



         VI.3.c. Module d’interrogation d’une base de données

              Ce module relève de l’exploitation d’une base de données : sélection,
         affichage et impression de données.

             VI.3.c.i Création d’une requête
                   L’utilisateur peut créer des requêtes simples de manière graphique à
              l’aide du requêteur (fig. 10).
              La première étape consiste à choisir tous les champs d’une table ou
              éventuellement une partie de ces champs.
              Pour chacun de ces champs, il peut imposer une ou plusieurs conditions en
              utilisant tous les opérateurs de comparaison que propose MySQL1. Les
              comparaisons peuvent se faire sur une valeur fixe entrée par l’utilisateur ou
              par rapport aux valeurs d’un champ d’une autre table de la base de données
              (jointure). Les conditions peuvent être organisées entre elles grâce aux
              opérateurs logiques de MySQL2.
              Un tri croissant ou décroissant peut être apposé sur un des champs
              sélectionnés.
              Si le requêteur ne convient pas, il est possible de créer des requêtes
              directement en SQL.
              Les requêtes créées peuvent être sauvegardées pour être rechargées par la
              suite.


1
    La liste des opérateurs de comparaison est disponible en Annexe V.1 page 8.
2
    La liste des opérateurs logiques est disponible en Annexe V.1 page 8.

VI. VIIDATA                                                                             18
                             Figure 10 : Le requêteur

       VI.3.c.ii Affichage des résultats
       Une fois la requête créée, le requêteur en affiche le résultat (fig. 11) qui peut
       être imprimé. Tout comme lors de l’affichage du contenu d’une table,
       l’utilisateur peut se déplacer au sein du jeu d’enregistrements et des
       traitements sont effectués sur les données affichées.




                        Figure 11 : Résultat d’une requête




VI. VIIDATA                                                                          19
         VI.3.d. Module de gestion des utilisateurs

               Ce module est strictement réservé aux administrateurs. En effet, il permet
         d’effectuer toutes les opérations concernant les utilisateurs de VIIDATA et
         MySQL.

             VI.3.d.i Liste des utilisateurs
                     La liste des utilisateurs permet de distinguer rapidement les
               administrateurs, dont les noms sont affichés en rouge. On peut également
               savoir d’un coup d’œil quels utilisateurs n’utilisent pas de mot de passe pour
               se connecter au serveur MySQL, afin de procéder à une sécurisation
               immédiate. Cette liste peut être triée par nom d’utilisateur ou par machine
               autorisée à se connecter.

             VI.3.d.ii Création d’un utilisateur
                     Il est possible de créer un utilisateur avec les options suivantes : choix
               de l’objet sur lequel vont s’appliquer les droits (serveur, base, table ou
               champ), choix du nom d’utilisateur, du mot de passe et éventuellement de la
               machine à partir de laquelle l’utilisateur est autorisé à se connecter au serveur
               de bases de données, avec, bien sûr, le panel des différents droits proposés par
               MySQL1 (fig. 12).




1
    La liste des droits est disponible en Annexe V.1 page 7.

VI. VIIDATA                                                                                  20
                       Figure 12 : Création d’un utilisateur


       VI.3.d.iii Affichage des propriétés d’un utilisateur
              Il peut être pratique de consulter les droits que possèdent les
       utilisateurs : VIIDATA les affiche, triés par importance décroissante : les
       droits sur le serveur, les droits sur des bases particulières, puis sur des tables
       particulières, et enfin sur des champs particuliers (fig. 13).

       VI.3.d.iv Modification des propriétés d’un utilisateur
             Il est également possible de modifier les propriétés d’un utilisateur, à
       savoir ajouter, retirer ou supprimer des droits.




VI. VIIDATA                                                                           21
       VI.3.d.v Suppression d’un utilisateur
             Finalement, il est possible de supprimer un utilisateur d’un simple clic,
       avec toutefois une demande de confirmation.




                     Figure 13 : Propriétés d’un utilisateur




VI. VIIDATA                                                                        22
    VI.3.e. Options

          L’utilisateur peut y changer son mot de passe, et s’il est administrateur, il
    peut également changer le logo d’entête de l’application et afficher les
    informations sur VIIDATA (fig. 14), PHP et MySQL.




   Figure 14 : Affichage des informations sur VIIDATA dans le menu des options


    VI.3.f. Sélection d’une base de données

          Destinée aux personnes souhaitant travailler sur une base de données en
    particulier, cette fonctionnalité permet à VIIDATA de retenir le nom de la base de
    travail, que ce soit pour la session en cours ou pour toutes les sessions.
    De cette manière, l’écran de sélection de base de données présent lors de l’entrée
    dans un module de l’application ne sera pas affiché et la base voulue sera
    directement utilisée.




VI. VIIDATA                                                                         23
VI. 4. Un logiciel multi-utilisateurs
     VIIDATA est multi-utilisateurs. Cela signifie que des identités sont définies pour
les différentes personnes utilisant l’application, que chacune peut posséder des
paramètres propres et que ces personnes peuvent accéder simultanément à l’application.


         VI.4.a. Gestion des identités1
               Toute personne désirant utiliser VIIDATA doit au préalable passer par
         l’écran de connexion. Ainsi, l’utilisation de l’application est limitée aux personnes
         autorisées uniquement.
         En réalité, VIIDATA ne gère pas directement les identités des utilisateurs. Il
         s’appuie pour cela sur MySQL. De ce fait, toute personne habilitée à se connecter
         au serveur MySQL auquel VIIDATA est relié sera autorisée à se connecter à
         VIIDATA. De même, les droits d’une personne sont respectés dans VIIDATA : si
         un utilisateur n’a accès qu’à une seule base de données sur le serveur MySQL, il
         n’aura accès qu’à cette base sur VIIDATA.


         VI.4.b. Paramètres d’un utilisateur
                VIIDATA peut stocker trois types d’éléments : la base de données que
         l’utilisateur souhaite utiliser par défaut, les requêtes construites par l’utilisateur, et
         les sauvegardes des bases de données elles-mêmes. Au besoin, un répertoire
         utilisateur est créé dans VIIDATA pour stocker ces données. Présentes sur le
         serveur, les données de chacun sont donc préservées et sécurisées.


         VI.4.c. Accès simultané
               VIIDATA utilise le système de sessions de PHP. Ainsi chaque utilisateur est
         identifié et ses paramètres d’identification sont stockés temporairement et de
         manière distincte.


         VI.4.d. Types d’utilisateurs
                VIIDATA distingue deux types d’utilisateurs : les « normaux » et les
         administrateurs.
         En analysant les droits dont il dispose sur le serveur MySQL, VIIDATA
         détermine automatiquement le type de l’utilisateur qui se connecte. Ainsi, les
         administrateurs auront accès à plus d’éléments que les utilisateurs normaux. Un
         administrateur pourra changer le logo d’entête, accéder au module de gestion des
         utilisateurs et afficher les informations sur VIIDATA.




1
    La manière dont VIIDATA gère la connexion à une page est décrite en Annexe IX.1 pages 29 à 31.

VI. VIIDATA                                                                                          24
VI. 5. Un logiciel convivial et didactique
    VI.5.a. Ergonomie

        VIIDATA a été pensé en termes d’ergonomie. En effet, les différents écrans de
    l’application respectent une charte graphique et une organisation commune, de
    manière à ce que l’utilisateur retrouve des éléments connus sur chaque écran.

       VI.5.a.i L’entête de page

              L’entête de page (fig. 15) regroupe les informations dont l’utilisateur a
        besoin pour se situer dans l’application. Elle se décompose en quatre
        éléments : la barre de navigation, le titre, le logo d’entête et le message de
        page.




                              Figure 15 : L’entête de page

               La barre de navigation

                    La barre de navigation (fig. 16) affiche les pages traversées à
              partir du menu de VIIDATA jusqu’à la page courante. Elle vise à
              atteindre deux objectifs. Le premier est de matérialiser l’enchaînement
              des pages pour familiariser l’utilisateur avec l’organisation arborescente
              de l’application, jouant ainsi le rôle de fil d’Ariane de VIIDATA.
              Le deuxième objectif est purement pratique : la barre de navigation
              constitue un moyen de se déplacer au sein de l’application. En effet, les
              noms des pages affichées dans la barre de navigation sont réactifs et
              amènent l’utilisateur sur la page en question en cas de clic.



                           Figure 16 : La barre de navigation

               Le titre

                    Le titre indique à l’utilisateur le rôle de la page sur laquelle il se
              trouve. Il est volontairement écrit en grands caractères et dans une
              couleur vive, afin que ce soit la première chose qui attire l’œil.



VI. VIIDATA                                                                            25
               Le logo

                     Le logo, personnalisable dans les options de VIIDATA, permet à
              l’utilisateur de revenir directement au menu.

               Le message de page

                    Le message de page indique à l’utilisateur ce qu’il peut faire ou ce
              qu’il voit sur la page concernée. Son rôle est d’apporter un complément
              d’information au titre. Dans le cas où l’utilisateur vient d’arriver sur
              une page, le message est bleu : il s’agit d’un message d’information.




                        Figure 17 : Message d’information

              Si l’utilisateur vient d’effectuer une action, ce message peut se
              transformer en message de succès…




                          Figure 18 : Message de succès

              … ou en message d’erreur le cas échéant :




                           Figure 19 : Message d’erreur


       VI.5.a.ii Le corps de page

             Le corps de page présente les données concernées par la page, ainsi que
       les actions qui y sont possibles. Sur la figure 20, il s’agit de la liste des
       champs d’une table.




                           Figure 20 : Le corps de page
VI. VIIDATA                                                                          26
       Des icônes sont souvent utilisées, afin que l’aspect soit plus agréable, mais
       une légende vient toujours expliciter leur rôle.

       Si d’autres actions indépendantes des données concernées par la page sont
       possibles, elles sont affichées dans le tableau d’actions :




                         Figure 21 : Le tableau d’actions

       VI.5.a.iii Le pied de page




                            Figure 22 : Le pied de page

               Le bouton d’aide

                     Ce bouton va ouvrir l’aide de VIIDATA à la section concernée
              par la page en cours. Ainsi, pour chaque écran de l’application,
              l’utilisateur pourra solliciter l’aide idoine.
              Ce bouton est volontairement placé en fin de page, de manière à ce que
              l’utilisateur ait déjà parcouru la page des yeux avant de demander de
              l’aide. Il sera donc plus à même de faire correspondre les conseils ou
              descriptions lues dans l’aide à ce qu’il voit sur la page et ne comprend
              pas.

               Le bouton de retour



                         Figure 23 : Le bouton de retour

                   Le bouton de retour permet à l’utilisateur de revenir sur ses pas.
              La page pointée par le bouton de retour n’étant pas toujours la dernière



VI. VIIDATA                                                                        27
                    page par laquelle est passé l’utilisateur, le bouton de retour indique le
                    nom de la page concernée.

                     Le bouton de déconnexion

                          Ce bouton ferme la session de l’utilisateur courant et ramène
                    l’application à la page de connexion.


       VI.5.b. Aide
              L’aide joue un rôle prépondérant dans l’aspect didactique. Son organisation
       contextuelle (à chaque page correspond un paragraphe) permet de l’utiliser de
       manière fragmentée et discontinue : l’utilisateur peut consulter directement la
       partie concernée, et s’il le souhaite, ne consulter que celle-ci.
       De plus, une introduction aux notions de bases de données est disponible pour les
       utilisateurs néophytes.


       VI.5.c. Traduction complète
              Contrairement aux autres logiciels de gestion de bases de données MySQL
       existants, VIIDATA est entièrement en français. Ainsi, même les termes inhérents
       à MySQL, tels que les types de champs ou les noms des droits des utilisateurs ont
       été traduits. Cela induit une meilleure compréhension pour l’utilisateur, qui saisira
       évidemment plus facilement ce que représente le type de champ « Grand entier »
       que son équivalent anglais « BIGINT ».


       VI.5.d. Assistants

              Symbolisés par une baguette magique              , les assistants permettent de
       simplifier certaines tâches au sein de VIIDATA. Ils sont au nombre de deux :
       l’assistant de création d’utilisateurs et l’assistant de création de tables.


           VI.5.d.i L’assistant de création d’utilisateurs
                  L’assistant de création d’utilisateurs a pour but de permettre de créer un
             utilisateur en quelques clics, sans avoir à comprendre la signification de tous
             les droits MySQL, qui, au nombre de treize, forment un enchevêtrement assez
             complexe.
             Dans l’assistant, les droits MySQL sont masqués par des droits plus simples
             et moins nombreux qui sont séparés en deux catégories : les droits sur la
             structure des objets de bases de données et les droits sur les données des
             objets de bases de données1. Alors que dans MySQL les droits peuvent être
             combinés, il suffit dans l’assistant de choisir un type de droit par catégorie,

1
 La correspondance entre les droits utilisés par l’assistant de création de d’utilisateurs et les droits
MySQL est disponible en Annexe V.2 page 9.

VI. VIIDATA                                                                                                28
       dont l’intitulé est suffisamment parlant pour en saisir le sens de manière
       intuitive.


       Pour les droits sur les données des objets de bases de données, il s’agit de :
                 Aucun
                 Consultation
                 Saisie et modification
                 Saisie, modification et effacement


       Concernant les droits sur la structure des objets de bases de données :
               Aucun
               Création
               Création et modification
               Création, modification et suppression

       L’assistant est subdivisé en plusieurs étapes, afin que l’utilisateur ne soit pas
       effrayé par une multitude de choix sur un seul écran.
       Il faut tout d’abord choisir un nom d’utilisateur et éventuellement un mot de
       passe (fig. 24). Puis, l’étape suivante consiste à spécifier les droits pour
       l’utilisateur (fig. 25). Finalement, dans le cas où l’utilisateur va posséder des
       droits spécifiques (i.e : ni aucun ni tous les droits), il faut choisir sur quoi ces
       droits vont s’appliquer (fig. 26).




              Figure 24 : Assistant de création d’utilisateurs, étape 1

VI. VIIDATA                                                                             29
              Figure 25 : Assistant de création d’utilisateurs, étape 2




              Figure 26 : Assistant de création d’utilisateurs, étape 3




              Figure 27 : Assistant de création d’utilisateurs, résultat.


VI. VIIDATA                                                                 30
       VI.5.d.ii L’assistant de création de bases
            L’assistant de création de bases a pour but de créer des bases type (fig. 28
       et 29) (gestion des stocks, gestion des appels, stocker des fichiers) pouvant
       servir de point de départ pour un utilisateur hésitant. Il pourra ensuite les
       adapter à ses propres besoins.
       D’autre part, ces bases types fournissent des exemples à l’utilisateur quant à
       la structure d’une base de données. Il pourra ainsi mieux appréhender
       différents points, comme l’utilisation d’identifiants, le choix du type de
       champ à utiliser pour un certain type de données ou l’utilisation des différents
       types de clés.




         Figure 28 : Assistant de création de bases, choix de la base type




               Figure 29 : Assistant de création de bases, résultat

VI. VIIDATA                                                                          31
                   VII. AUTRES ASPECTS DU STAGE

VII. 1. Transferts de compétences
        Mon travail durant ce stage ne s’est pas borné à développer VIIDATA. En effet,
j’ai également été amené à former mes collègues à PHP et MySQL à l’occasion de
transferts de compétences, afin qu’ils puissent, après mon départ, réaliser des tâches de
maintenance sur VIIDATA ou éventuellement développer eux-même des solutions à
base de PHP-MySQL.
Les transferts ont eu lieu environ toutes les deux semaines. La plupart se sont déroulés
de manière orale, mais pour trois d’entre eux, un support a été rédigé. Je leur ai
présenté, à l’aide de transparents, les notions essentielles. A l’issue de chaque
présentation, ils ont eu à disposition un fichier HTML récapitulant les notions abordées1
pouvant servir de référence future.


VII. 2. Gestion de projet
       Etant le seul développeur de l’entreprise, j’ai dû prendre en charge toutes les
étapes de la création de VIIDATA. Ainsi l’analyse du sujet, la planification du
développement, les fonctionnalités à intégrer à l’application, bien que décidées en
concertation avec mon employeur, me sont revenues.


VII. 3. Graphisme
        En dehors des techniques de développement pré-citées, j’ai également eu en
charge le graphisme de l’application, ce qui couvre principalement les icônes employées
et le logo de VIIDATA. Par la même occasion, j’ai pu mettre à profit mes compétences
dans ce domaine afin de retravailler le logo de l’entreprise sous forme vectorielle2.


VII. 4. Implication dans la vie de l’entreprise
        Finalement, cette première expérience dans une petite entreprise m’a donné
l’occasion de m’impliquer dans la vie de l’entreprise plus que je n’ai pu le faire
auparavant. En effet, les structures ne comportant que quelques personnes induisent une
nécessaire transversalité des postes. Ainsi, j’ai contribué à la préparation et au
déroulement d’un salon auquel Voltigeur Informatique a participé3.
D’autre part, répondre au téléphone, conseiller les clients, réceptionner les livraisons,
effectuer divers travaux de maintenance logicielle et matérielle sont autant de tâches que
j’ai été amené à effectuer et qui m’ont permis d’aborder un aspect beaucoup plus
pratique de la vie d’entreprise.


1
  Ces transferts de compétences sont disponibles en Annexe IX page 15.
2
  Les deux logos sont visibles en Annexe VIII page 14.
3
  Le salon des artisans : 9, 10 et 11 novembre aux Tanzmatten à Sélestat.

VII. Autres aspects du stage                                                           32
    VIII.COMPETENCES ACQUISES ET DIFFICULTES
                               RENCONTREES

VIII. 1. Compétences acquises
     VIII.1.a. Pédagogie

         Au travers de la rédaction des transferts de compétences et de l’aide de
     VIIDATA, j’ai du développer une stratégie pédagogique afin que les pré-requis
     nécessaires à la lecture de ces documents soient les moins nombreux possibles.
     Ainsi, des exemples concrets viennent le plus souvent illustrer chaque point
     abordé de manière théorique, et ce, afin que le lecteur saisisse et intègre le propos
     sans difficulté.


     VIII.1.b. Conception d’Interfaces Homme-Machine
          A quelques exceptions près, le critère déterminant des logiciels réalisés en
     environnement scolaire est plus la qualité du fonctionnement interne du
     programme que son aspect. De ce fait, mes connaissances dans le domaine de la
     réalisation d’Interfaces Homme-Machine (IHM) étaient limitées, non pas du point
     de vue technique, mais du point de vue relationnel entre le fonctionnement du
     programme et la compréhension que l’utilisateur a de ce fonctionnement.

     C’est pourquoi la présentation et l’organisation visuelle du programme ont été
     sujettes à des modifications successives, après différentes réunions d’analyse avec
     Didier Guth, me permettant ainsi de tirer des conclusions quant à certains
     principes à respecter en termes d’IHM.


     VIII.1.c. Technologies utilisées
          Les différentes technologies utilisées lors de ce stage m’étaient plus ou moins
     familières, mais j’ai pu compléter les connaissances que j’avais sur chacune
     d’elles. Ainsi, je connaissais déjà le couple PHP-MySQL pour l’avoir étudié à
     l’IUT de Belfort, mais j’ai pu lui découvrir des fonctionnalités avancées, comme
     par exemple la gestion des sessions en PHP ou des types de champs MySQL.

     En ce qui concerne les feuilles de style CSS, je n’avais qu’une idée imprécise de
     leur fonctionnement, et j’ai pu découvrir les différents domaines d’action de ce
     langage de mise en forme.




VIII. Compétences acquises et difficultés rencontrées                                  33
VIII. 2. Difficultés rencontrées
       Je n’ai pas rencontré de difficultés majeures lors du développement, même si,
comme à l’accoutumée, la recherche de documentation sur Internet s’est avérée
bénéfique dans un certain nombre de situations. En fait, les difficultés rencontrées,
suivies d’une recherche d’informations, se sont la plupart du temps transformées en
occasions d’apprendre de nouvelles techniques de programmation, à l’exception des
points suivants, qui, bien que n’étant pas insurmontables, ont retardé l’évolution du
développement.


     VIII.2.a. Javascript
           Javascript, bien qu’étant un langage à la syntaxe plutôt simple, se révèle être
     excessivement pénible à déboguer, du fait de l’imprécision des messages d’erreurs
     des navigateurs. Je n’ai pas pour habitude d’utiliser des outils d’aide au
     développement, mais je dois reconnaître que Javascript est un langage qui
     mériterait d’en disposer.
     De plus, PHP produisant du HTML, les numéros de ligne des erreurs Javascript
     concernent le fichier HTML produit et non le fichier source PHP. Il est donc
     souvent difficile de retrouver l’origine d’une erreur.


     VIII.2.b. Compatibilité entre navigateurs
           Si l’utilisation d’un navigateur internet comme support à une application
     présente l’avantage d’augmenter les possibilités d’utilisation, le système
     d’exploitation important peu, des problèmes peuvent survenir au niveau de la
     compatibilité entre les navigateurs utilisés.

     En ce qui concerne HTML, bien que la prise en charge du langage soit à peu près
     équivalente, son traitement est différent sur chaque navigateur, chacun utilisant un
     moteur HTML différent. Ainsi, au niveau de l’affichage peuvent survenir des
     différences qu’il faut essayer de supprimer ou, le cas échéant, de minimiser.

     Par contre, avec Javascript, le problème est plus ardu puisque c’est la prise en
     charge du langage lui-même qui varie selon les navigateurs. Ainsi, certaines
     fonctionnalités sont implémentées différemment suivant le navigateur et il faut
     alors trouver une autre manière de programmer telle ou telle partie pour que le
     Javascript s’exécute correctement quel que soit le cas de figure.

     Cependant, pour s’assurer de son bon fonctionnement, VIIDATA a été testé
     exhaustivement avec les navigateurs les plus répandus et des essais ont été faits
     avec d’autres navigateurs moins connus.




VIII. Compétences acquises et difficultés rencontrées                                  34
                            IX. PROSPECTIVES


IX. 1. Limites et évolutions possibles
        Bien que fonctionnel, le requêteur pourrait se voir adjoindre quelques
améliorations, afin que celui-ci puisse par exemple sélectionner des données provenant
de différentes tables.
De plus, un générateur de pages PHP contenant des requêtes avec des critères définis
par l’utilisateur pourrait étendre les fonctionnalités d’exploitation de bases de données
de VIIDATA, permettant ainsi aux administrateurs de créer des pages de sélection ou
d’insertion utilisables par la suite sans VIIDATA.


IX. 2. Avenir de l’application
        VIIDATA sera utilisé par Voltigeur Informatique en interne pour effectuer des
interventions sur bases de données MySQL chez les clients.
D’autre part, l’application devrait être distribuée en tant que logiciel libre sous licence
GPL. Ce mode de distribution présente beaucoup d’avantages pour une société qui n’a
pas forcément le temps ni les moyens de mettre en place une distribution commerciale.
Il n’est pas obligatoire de créer un support physique avec un manuel papier, une
distribution par téléchargement est suffisante. De même, le développement de solutions
de protection anti-copie, tels les numéros de série, ou l’enregistrement par Internet ou
par téléphone sont souvent lourdes à mettre en place, et de toutes façons, impossibles
dans le cas de VIIDATA, puisque le PHP est un langage interprété et non compilé : le
code source est lisible par tous.




IX. Prospectives                                                                        35
                              X. CONCLUSION


      Si le premier stage que j’avais effectué chez MSG Software pendant ma formation
à l’IUT Informatique de Belfort m’avait déjà confronté aux différences entre
l’enseignement théorique et la réalité du monde du travail, celui-ci m’a permis une
immersion plus profonde au sein des différents aspects de l’entreprise. En effet, étant le
seul développeur dans l’équipe de Voltigeur Informatique, j’ai du faire preuve d’une
grande autonomie.
De plus, j’ai eu pour la première fois à mener un projet dans sa totalité. De ce fait, il est
apparu que le travail d’informaticien ne se limite pas qu’au développement, et nécessite
la mise en œuvre de nombreuses compétences.
Je pense avoir, par le biais de ce stage, acquis plus de maturité pour ma future entrée
dans la vie active.

VIIDATA est une application fonctionnelle et bien que non-exempte de quelques
imperfections, je pense qu’elle pourra être utile non seulement à Voltigeur
Informatique, mais aussi à des particuliers et entreprises désireux de créer un
environnement de bases de données fiable et efficace.
Devant être distribuée sous forme de logiciel libre, elle pourra éventuellement être
l’objet d’améliorations spontanées.




X. Conclusion                                                                             36
                            XI. BIBLIOGRAPHIE

Livres :

MySQL / Paul DuBois ; trad. Claude Levior et Christine Eberhardt .- Paris :
CampusPress , 2000 (Référence).

PHP / Michel Dreyfus .- Paris : CampusPress , 2002 (Le Tout en Poche).

HTML / Jennifer Niederst ; trad. James Guérin .- Paris : O’Reilly, 2002
(Précis & concis).



Internet :

Documentation en ligne de MySQL :                               http://www.mysql.com
Documentation en ligne de PHP :                                 http://www.php.net
Documentation en ligne de MySQL et PHP en français :            http://dev.nexen.net
PHPInfo :                                                       http://www.phpinfo.net
PHPIndex :                                                      http://www.phpindex.com
ALL HTML :                                                      http://www.allhtml.com



Sites internet des logiciels cités dans ce rapport :

Access :                             http://www.microsoft.com/france/access/
Apache :                             http://httpd.apache.org/
EasyPHP :                            http://www.easyphp.org/
Eskuel :                             http://www.phptools4u.com/scripts/eskuel/
Internet Explorer :                  http://www.microsoft.com/france/internet/produits/ie/
Mozilla :                            http://www.mozilla.org/
MySQL :                              http://www.mysql.com
Netscape :                           http://www.netscape.com/
Oracle :                             http://www.oracle.com/fr/
PHP :                                http://www.php.com
PHPMyAdmin :                         http://www.phpmyadmin.net




XI. Bibliographie                                                                      37
                        XII. TABLE DES ILLUSTRATIONS



Figure 1 : Structure de VIIDATA ................................................................................... 10
Figure 2 : Organisation physique d’une page de l’application ....................................... 12
Figure 3 : Affichage de la structure d’une base de données ........................................... 14
Figure 4 : Création d’une table ....................................................................................... 15
Figure 5 : Liste des champs d’une table ......................................................................... 15
Figure 6 : Modification des propriétés d’un champ ........................................................ 16
Figure 7 : Liste des clés d’une table ............................................................................... 16
Figure 8 : Insertion manuelle d’enregistrements ............................................................ 17
Figure 9 : Affichage des enregistrements ....................................................................... 18
Figure 10 : Le requêteur.................................................................................................. 19
Figure 11 : Résultat d’une requête .................................................................................. 19
Figure 12 : Création d’un utilisateur ............................................................................... 21
Figure 13 : Propriétés d’un utilisateur ............................................................................ 22
Figure 14 : Affichage des informations sur VIIDATA dans le menu des options ......... 23
Figure 15 : L’entête de page ........................................................................................... 25
Figure 16 : La barre de navigation .................................................................................. 25
Figure 17 : Message d’information ................................................................................. 26
Figure 18 : Message de succès ........................................................................................ 26
Figure 19 : Message d’erreur .......................................................................................... 26
Figure 20 : Le corps de page ........................................................................................... 26
Figure 21 : Le tableau d’actions ..................................................................................... 27
Figure 22 : Le pied de page ............................................................................................ 27
Figure 23 : Le bouton de retour ...................................................................................... 27
Figure 24 : Assistant de création d’utilisateurs, étape 1 ................................................. 29
Figure 25 : Assistant de création d’utilisateurs, étape 2 ................................................. 30
Figure 26 : Assistant de création d’utilisateurs, étape 3 ................................................. 30
Figure 27 : Assistant de création d’utilisateurs, résultat. ................................................ 30
Figure 28 : Assistant de création de bases, choix de la base type ................................... 31
Figure 29 : Assistant de création de bases, résultat ........................................................ 31




XII. Table des illustrations                                                                                             38
                             XIII. GLOSSAIRE

Administrateur : Un administrateur est une personne qui possède les pleins pouvoirs
sur un système donné. Dans le monde Unix/Linux, on parle également d’utilisateur root.

API : Application Programming Interface. Une API est un jeu de fonctions qu’un
programmeur peut utiliser pour travailler avec un composant, une application ou un
système d’exploitation.

Base de données : Ensemble de données organisées de telle manière qu'on puisse les
exploiter.

Champ : Un champ est une colonne d’une table. Il qualifie une propriété de l’entité
représentée par la table qui la contient.
Exemple : une table « client » pourrait contenir les champs « nom », « prénom »,
« adresse »…

Clé : Une clé est associée à un champ et permet, suivant son type, de retrouver un
enregistrement de manière non-ambiguë ou d’accélérer le temps de recherche d’un
enregistrement.

Déboguer : Rechercher des erreurs dans le code source d’un programme en vue de leur
correction.

Empattement : Une police de caractères avec empattement comporte des traits
horizontaux sur le haut et à la base de ses caractères, apportant un meilleur confort de
lecture sur un support papier. La police utilisée pour ce rapport est une police avec
empattement. A l’inverse, les polices sans empattement apportent un meilleur confort de
lecture sur écran.
Le terme de sérification (souvent abrégé en sérif) est couramment utilisé à la place
d’empattement, bien qu’il s’agisse d’un anglicisme et que son usage soit déconseillé.
Exemple :
Une police avec empattement.
Une police sans empattement.

Enregistrement : Un enregistrement est une ligne d’une table. C’est l’ensemble des
valeurs qui caractérisent une occurrence de l’entité représentée par la table qui la
contient.
Exemple : Si une table « client » contient les champs « nom », « prénom », « adresse »,
un enregistrement pourrait être « Meusburger », « Matthias », « 25 quai Vauban 25000
Besançon ».

Feuilles de style CSS (Cascading Sheet Style) : Norme étendue du HTML 4.0, qui
permet un contrôle avancé de la mise en page.

HTML (HyperText Markup Language) : Langage dans lequel sont écrites les pages
web.


XIII. Glossaire                                                                      39
HTTP (HyperText Transfer Protocol) : Protocole qui assure la transmission des pages
HTML.

Javascript : Langage de script développé par Netscape et initialement baptisé
Livescript, qui s’exécute dans les pages HTML côté client. Il permet d’interagir avec les
composants normalement statiques d’une page HTML.

Jeu d’enregistrements : Forme sous laquelle une base de données renvoie les
informations demandées.

Logiciel libre : Un logiciel est dit libre dès lors qu’il est possible de le distribuer et de le
modifier librement. L’expression anglaise correspondante, Free Software, induit une
ambiguïté dans la signification de ce terme, puisque free signifie à la fois libre et gratuit.
Un logiciel libre n’est pas forcément gratuit, même si c’est souvent le cas. Pour plus de
détails, vous pouvez consulter le site de la free software foundation
(www.fsfeurope.org), qui est l’instigatrice du logiciel libre, et le site du projet GNU
(www.gnu.org), dont tous les logiciels sont libres.

MySQL : Système de gestion de bases de données. MySQL est un logiciel libre,
disponible pour de nombreux environnements : Linux, Windows, Solaris, FreeBSD,
MacOS X, HP-UX, AIX, SCO, SGI Irix, Dec OSF et BSDi.

Navigateur : Logiciel permettant de visionner des pages HTML. Microsoft Internet
Explorer et Netscape Navigator sont des navigateurs.

PHP (PHP : Hypertext Preprocessor) : Langage de script HTML situé côté serveur. Il
permet de générer dynamiquement des pages HTML. PHP est un logiciel libre.

Requête : Une requête constitue une demande au SGBD. Suivant le type de requête,
celui-ci peut effectuer différentes opérations sur les bases de données. Les requêtes sont
formulées en langage SQL.

Requêteur : Logiciel ou partie d’un logiciel qui permet d’effectuer des requêtes de
manière graphique, sans avoir à connaître le langage SQL.

Serveur HTTP : Ordinateur qui fournit des pages HTML à la demande. Apache et IIS
sont des serveurs HTTP. On parle également de serveur web.

SQL (Structured Query Language) : Langage qui permet d’interroger une base de
données.

Système de gestion de base de données : (Abr : SGBD) Un système de gestion de
bases de données est un logiciel qui gère l'organisation d'une base de données et en
permet l'exploitation. MySQL, tout comme Access ou Oracle, est un système de
gestion de bases de données.




XIII. Glossaire                                                                              40
Table : Une base de données contient généralement plusieurs tables, chacune d’elle
représentant une des notions de la base qui la contient. Une table est constituée de lignes
et de colonnes. Une colonne est un champ, et une ligne est un enregistrement.
Exemple : une base de données « Gestion des commandes » pourrait contenir une table
« produit » et une table « client ».




Vectoriel (dessin) : Par opposition au dessin « classique », dans lequel les images sont
enregistrées comme étant un ensemble de pixels, le dessin vectoriel stocke les images
sous forme d’expressions mathématiques, permettant ainsi un agrandissement infini du
dessin sans aucune perte de qualité.




XIII. Glossaire                                                                         41
         Logiciel de gestion de bases de données MySQL



   Résumé :

         MySQL, système de gestion de bases de données libre et
   souvent gratuit, tend à s’imposer de plus en plus tant auprès du grand
   public que des petites et moyennes entreprises. Cependant, son
   utilisation ardue freine son développement. C’est pourquoi il est
   devenu indispensable de disposer d’une interface graphique conviviale
   et facile d’utilisation pour cet outil.
   VIIDATA remplit ce rôle : il permet de créer, de gérer et d’exploiter des
   bases de données MySQL avec un simple navigateur Internet.


   Mots-clés :

   Bases de données, MySQL, PHP, gestion, convivialité, administration




   Summary :

        Despite the fact that the open source and often free database
   engine MySQL is more and more used, its difficult manipulation limits
   its broadcasting. Therefore having a user-friendly and easy to use
   graphical interface for this tool has became unavoidable.
   VIIDATA reach this aim: MySQL databases can be created, managed
   and used simply with an Internet browser.


   Keywords :

   Databases, MySQL, PHP, management, user-friendly, administration




XIII. Annexes                                                                  42