Travaux Pratiques « fichiers et bases de données 1»
Deuxièmes candidatures en informatique - 2005 -


Enseignants :

Raphael Astier Alain Buys
Bureau 2E18 Bureau 3E16
Tel : 065/37.34.98 Tel : 065/37.33.62
Raphael.Astier@umh.ac.be Alain.Buys@umh.ac.be

Si vous souhaitez nous rencontrer en dehors du cours, veuillez prendre rendez-vous par e-mail.

Partie I : Structured Query Language (SQL) [Alain Buys]

Les slides de cours et les fichiers de script sql sont téléchargeables sur le site ftp de l'UMH : TPSQL.

Partie II : Query-By-Example (QBE) [Raphael Astier]

[Page 2003, avec des exemples introductifs de code html et php.]

      Travail demandé

Le but est de créer une interface web qui puisse interroger une base de données, et ceci de façon identique à ce que fait le logiciel QBE (proposé commercialement par IBM au dessus de DB2 depuis 1983). La description exacte de l'interface attendue est présentée lors du premier tp. Voir ci-dessous pour un récapitulatif de cette interface.
Vous devrez aussi rendre un rapport (format indifférent) qui détaille le travail que vous avez effectué, (qui explique ce que vous avez fait en plus, le cas échéant), et qui réponde (de façon justifiée) à quelques questions (voir la section Questions ci-dessous). Vous pourrez y joindre en annexe votre code, clairement documenté et présenté.

Pour la description du logiciel QBE :
  1. Voir le document distribué au 1er tp (« Overview of the QBE language »),
  2. La description donnée dans le livre « Bases de données », G. Gardarin (Eyrolles, 2002) est fournie ici sous forme de fichiers pdf : Pages 1 à 4.
  3. Des exemples de requêtes QBE tirées du « Livre de sql », S. Pasleau (PSI, 1989) : page-qbe.pdf.
Le modèle est basé sur celui du client-serveur, et votre interface QBE devra être cliente d'un serveur de bases de données.

     Description de l'interface

En fait on souhaite qu'elle corresponde exactement à celle décrite ci-dessus pour le logiciel QBE. Cela peut sembler restrictif et contraignant, mais c'est le but : les fioritures sont interdites ! Vous devrez présenter un projet qui donne une interface web capable de faire des sélections/projections/jointures sur une base de donnée quelconque, avec un graphisme identique à QBE. C'est tout, mais elle doit fonctionner parfaitement, même dans des cas de sélection/projection/jointure compliqués, ou d'erreurs d'entrée de l'utilisateur, donc ATTENTION, le jour de la présentation du projet, il sera trop tard pour réfléchir à la conception.
Concrètement :

     Détails pratiques

La présentation de votre projet (i.e. de votre interface) se fera à l'aide du serveur fbd-serv.swapping.umh.ac.be (serveur intranet UMH uniquement), qui contient un serveur web Apache, un serveur MySQL, et le navigateur Mozilla 1.7.3.
Votre interface devra fonctionner (au moins) avec ce navigateur.
Vous disposez d'un compte sur ce serveur, (login&passwd vous seront donnés au 1er tp), vous pouvez y accéder depuis les machines Windows des salles Escher/Turing par ssh, Cygwin, y copier vos fichiers via scp, ou même par drag&drop (mettre dans la barre d'URL "\\fbd-serv\homes").
En fait c'est dans votre répertoire "public_html/" sur ce serveur que vous placez vos scripts, qui pourront être exécutés par le programme php du serveur, et dont le résultat (html) sera envoyé au client (navigateur Internet) par le serveur Apache. Tout ceci sera montré lors des premiers tp.
Votre interface sera donc accessible depuis le navigateur à l'adresse : http://fbd-serv.swapping.umh.ac.be/~login,
si vous prenez bien soin de mettre un fichier index.php (ou index.html) dans votre répertoire public_html.
Toutes les spécificités de cette machine (serveur web, mysql, moteur php, phpMyAdmin, Cygwin...) sont accessibles depuis l'URL : http://fbd-serv.swapping.umh.ac.be.
Sur le serveur MySQL de cette machine, vous trouverez une base de donnée nommée « Geographie », qui peut vous servir à « mettre au point » votre interface. Vous y avez accès en lecture seule ("select only"), par l'intermédiaire du compte MySQL : fbdcommun/fbdserv.
Attention : Lors de votre présentation, la base de données sur laquelle vous testerez votre interface sera nommée différemment, et vous découvrirez son contenu, ainsi que les questions que j'aurais prévues pour le test (questions «en français», auxquelles vous répondrez via votre interface), plus mon jeu de tests.

Le langage à utiliser pour créer votre interface QBE n'est pas imposé, disons que le PHP est le plus simple d'accès et le plus documenté sur le web, mais sont aussi possibles par exemple : perl, python, caml, scripts shell, xml...

     Pour s'entraîner chez soi...

Deux possiblités au moins pour Windows : sont deux paquetages qui permettent de simuler (chez soi...) serveur web, serveur MySQL et interpréteur PHP. Cependant si vous utilisez ceci, je vous conseille de recopier chez vous les fichiers de configuration de fbd-serv (php.ini, httpd.conf) pour éviter des surprises lors de votre présentation...

Pour Linux, il faut configurer les différents composants (MySQL, PHP, Apache), ceux-ci étant déjà normalement présents par défaut dans toute distribution récente.

     Questions du rapport


Avec votre interface :

     Planning

Présentation et remise du rapport (version papier) le mercredi 23 mars à 13h15, salle Turing.


Service de Science des Systèmes d'Information, Institut d'Informatique, Université de Mons-Hainaut, Belgique
Last modified : Monday, 13-Feb-2006 17:09:15 NFT Raphael Astier