TP 3-4 BD21
Conception des données Expression des besoins globaux sur les données Expression des besoins propres à chaque utilisateur Schéma Entité/Association Ensemble de schémas externes (droits + vues) Schéma conceptuel Oracle Schéma complet BD pour Oracle Bases de Données
TP Conception EI2 Schéma relationnel abstrait Création du schéma conceptuel sous Oracle (via Netscape) Rétro-conception Schéma Entité/Association Copier/ coller Construction d’applications formulaires HTML AMC*Designor Schéma relationnel Oracle SQL Sur Oracle (serveur) Sur PC Bases de Données
Passerelle Oracle/Web Passerelle spécifique INT très simple à utiliser dédiée Oracle (CGI écrit en Pro*C) « générique » pour l ’affichage des résultats tout se fait sur le client (variables à positionner dans le formulaire) pas de travail à faire côté serveur personnalisation limitée Bases de Données
Principe de la passerelle Un programme de type CGI générique existe Ce CGI est paramétré par l ’utilisation de variables prédéfinies (doivent être définies et correctement initialisées dans les formulaires lançant le CGI) Programmer une application = réaliser des formulaires positionnant correctement les variables attendues Bases de Données
WWW - Architecture étendue protocole dédié HTTP CGI script CGI client W3 serveur W3 appli externe BD ou système de fichiers form W3 page W3 système de fichiers Pages HTML statiques Pages HTML dynamiques Bases de Données
WWW - Les formulaires HTML Un formulaire autorise l’interactivité entre le client et le serveur Un formulaire contient : Des zones de saisie avec des boutons, des listes de choix, .. Un attribut « action » qui définit l'URL d'un programme exécutable sur le serveur Un attribut « method » qui définit le mode de transfert des données vers le programme Bases de Données
WWW - Programmation CGI Communication serveur W3 script CGI : Un ensemble de variables d’environnement Entrée standard du processus CGI en exécution Sortie standard du processus CGI en exécution Problème de sécurité : Exécution du script avec le minimum de droits Éviter l'accessibilité du code source du script Vérifier les données en provenance du formulaire Bases de Données
WWW - Formulaires et CGI Principe de fonctionnement Formulaire rempli par utilisateur Formulaire envoyé au serveur W3 Variables d'env. CGI positionnées par le serveur Exécution du script CGI lancée par le serveur qui passe le contenu du formulaire Document généré et renvoyé au serveur W3 par le script CGI sur sa sortie standard Document renvoyé au client par le serveur W3 Bases de Données
Accès à la BD (script client) Serveur HTTP Passerelle Url+ variables variables R1 R1 habillage HTML résultat html SQL résultat Client browser Chaque requête client est traitée par une instance de la passerelle SGBD Bases de Données
Fonctionnement de la passerelle Déclenchée via un formulaire Décode les variables d’environnement attendues Lance une (des) requête(s) sur Oracle Formate le résultat en HTML avant de le renvoyer (sous forme de tableau HTML ou de formulaire, …) Bases de Données
Programmation de la passerelle Écriture de formulaires HTML devant déclarer et positionner des variables : Obligatoires : uid (chaine de connexion Oracle), mode (NOR le plus simple), sqlstatement (instruction SQL à exécuter, peut être vide) Optionnelles : title par exemple Des contraintes entre les variables (une variable ne peut être positionnée si une autre ne l’est pas également) Bases de Données
Les modes NORmal : tableau INSertion : formulaire d ’insertion MAJ : formulaire de maj SUPpression : formulaire de suppression QBE : formulaire d ’interrogation à la QBE HYPertexte : permet une navigation hypertexte dans les clés étrangères et primaires Bases de Données
Exemple <html><body> <h1>GENERATION D ’UN FORMULAIRE D ’INSERTION DANS LA RELATION VINS</h1> <form name=‘f1’ action=‘http://cgi’ mode=‘get’> <input type=‘hidden’ name=‘uid ’ value=‘toto/titi@MICA’> <input type=‘hidden’ name=‘mode’ value=‘INS’> <input type=‘hidden’ name=‘table’ value=‘VINS’> <input type=‘hidden’ name=‘sqlstatement’ value=‘’> <input type=‘button’ value=‘insertion dans VINS’ onClick=‘f1.submit();’> <P></P> </form> </body></html> Bases de Données
Support des URLs Stockage des urls dans la BD (par exemple des liens sur des fichiers images) Il faut que la passerelle traite les urls (chaîne de caractères) différemment Nom des attributs correspondants à des urls ont un préfixe fixe (URL_ ou IMG_) Bases de Données
Générateur d ’application Source XML générateur Description de l’application Formulaires HTML à personnaliser Bases de Données
Exemple de source XML <?xml version=« 1.0 »?> <appli> <entete> <uid>titi/toto@MICA</uid> <titre>Mon Appli</titre> </entete> <liste_form> <formulaire> <nom_table>VINS</nom_table> <mode> <mode_ins></mode_ins> </mode> </formulaire> </liste_form> </appli> Bases de Données