Informatique et Sciences du Numérique Présentiel du 22/03/2012 Objectifs du présentiel niveau 2 Etre capable de • mettre en œuvre un environnement de programmation en langage HTML/PHP • Créer d’une base de données. • Créer des tables • Exploiter les informations d’une base de données. Architecture d’un serveur de base de données Système de relevé de T° Postes clients Internet Système d’exploitation (OS) Serveur de Base de Données(MySQL) Port = 3306 Système d’exploitation (OS) Application cliente disque Base Données Architecture d’un site WEB Dynamique Système de relevé de T° avec Base de données Postes clients Internet Système d’exploitation (OS) Serveur WEB Port = 80 Moteur PHP Système d’exploitation (OS) Navigateur Serveur BD Port=3306 disque Travaux Pratiques Gestion simple d’un CDI Scénario : Pendant ce deux casquettes : travail dirigé, vous allez avoir Administrateur de la base de données Documentaliste Travaux Pratiques Mettre la casquette de l’administrateur PREMIERE PARTIE 1 ) Installation et Présentation du serveur Mysql et de son environnement (phpMyAdmin ) 2) Création de la base de données CDI 3) Création des tables livre, personne et emprunt. En utilisant le Concepteur de l’outil d’administration, vérifier les relations entre les tables. Travaux Pratiques Mettre la casquette de la documentaliste Saisir les données des tables livre, personne et emprunt noliv 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 titre Les chouans Germinal L'assommoir La bête humaine Les misérables La peste Les lettres persanes Bel ami Les lettres de mon moulin César Marius Fanny Les fleurs du mal Paroles Les raisins de la colère auteur Balzac Zola Zola Zola Hugo Camus Maupassant Maupassant Daudet Pagnol Pagnol Pagnol Baudelaire Prévert Steinbeck genre Roman Roman Roman Roman Roman Roman Roman Roman Roman Roman Roman Roman poésie poésie Roman prix 8 7.5 9.5 7 10.5 11.2 14 7.6 10 10 6.5 7.2 13 12 13.5 Travaux Pratiques Mettre la casquette de la documentaliste nopers 1 2 3 4 5 6 7 8 9 10 nom Durand Brieusel Riois Denayville Planchon Pène Bert Gonzales Martin Jourda nopers noliv 4 1 7 2 3 3 14 3 9 11 3 4 8 8 7 1 prenom Jean-Pierre Chantal Lucas Hélène André Gérôme Jean-Pierre Alain François Véronique sortie 01/02/2011 03/03/2011 05/03/2011 18/03/2011 30/03/2011 30/03/2011 31/03/2011 02/04/2011 Classe 1TS 1TS 2SEC 2TS 2TS 2SEC 1TPRO 1TPRO 2TS 2TPRO retour 30/03/2011 21/03/2011 15/04/2011 18/04/2011 Travaux Pratiques Langage SQL Mettre la casquette de l’administrateur noliv 1 2 3 4 5 titre Les chouans Germinal L'assommoir La bête humaine Les misérables auteur Balzac Zola Zola Zola Hugo genre Roman Roman Roman Roman Roman prix 8 7.5 9.5 7 10.5 Une relation est une table comportant des colonnes (appelées aussi attributs) dont le nom et le type caractérisent le contenu qui sera inséré dans la table. Les lignes que contiendra cette table seront appelées enregistrements ou tuples. Les opérations possibles sur une relation : PROJECTION livre noliv 1 2 3 4 5 titre Les chouans Germinal L'assommoir La bête humaine Les misérables auteur Balzac Zola Zola Zola Hugo genre prix Roman Roman Roman Roman Roman 8 7.5 9.5 7 10.5 Projection : On projette la table livre sur les colonnes titre et auteur. SELECT titre, auteur FROM livre titre auteur Les chouans Germinal L'assommoir La bête humaine Les misérables Balzac Zola Zola Zola Hugo 10 Les opérations possibles sur une relation : SELECTION livre noliv 1 2 3 4 5 titre Les chouans Germinal L'assommoir La bête humaine Les misérables auteur Balzac Zola Zola Zola Hugo genre prix Roman Roman Roman Roman Roman 8 7.5 9.5 7 10.5 SELECTION: On ne sélectionne que les tuples dont l’attribut auteur est égale à ‘Zola’. SELECT titre, auteur FROM livre WHERE auteur=‘Zola’ titre auteur Germinal L'assommoir La bête humaine Zola Zola Zola 11 JOINTURE livre noli v 1 2 3 4 5 titre Les chouans Germinal L'assommoir La bête humaine Les misérables auteur Balzac Zola Zola Zola Hugo genre Roman Roman Roman Roman Roman prix 8 7.5 9.5 7 10.5 nope rs 1 2 3 nopers noliv sortie retour 4 14 2011-0101 0000-00-00 7 6 2011-0106 0000-00-00 1 4 2012-0203 NULL nom Durand Brieusel Riois prenom Jean-Pierre Chantal Lucas Classe 1TS 1TS 2SEC SELECT personne.nom, personne.Classe, livre.titre, emprunt.sortie FROM `emprunt` , `personne` , livre WHERE emprunt.retour = "0000-00-00" AND emprunt.nopers = personne.nopers AND emprunt.noliv = livre.noliv nom Classe titre sortie Riois Pau Les raisins de 2011-01-01 Pène Nay Les lettres per 2011-01-06 12 Travaux Pratiques Mettre la casquette de l’administrateur DEUXIEME PARTIE: Initiation au langage S.Q.L En utilisant l’éditeur des requêtes SQL, Tester les requêtes S.Q.L pour : 1) Afficher la table livre, afficher la table personne, afficher la table emprunt. 2) Rechercher tous les livres écrits par Zola. 3) Rechercher tous les livres écrits par Zola et dont le prix est inférieur à 10 Euros. 4) Rechercher tous les livres dont l'auteur n'est ni Balzac ni Zola. 5) Calculer le prix total des livres 6) Afficher le nombre de romans 7) Afficher la liste des livres empruntés, ainsi que les coordonnées des emprunteurs. Création d’un client (Apache/PHP) pour un serveur de BD MysQL Système d’exploitation (OS) Serveur WEB Postes clients Internet Port = 80 Moteur PHP Serveur BD Port=3306 disque Système d’exploitation (OS) Navigateur Script en PHP Base données CDI Travaux Pratiques Mettre la casquette de l’administrateur Programmation du poste Documentaliste (version V0.0) Le langage PHP propose des fonctions pour communiquer avec un serveur de Base de Données MySQL. mysql_connect($server,$user,$psw) mysql_select_db($base) mysql_close([$id]) mysql_query($requete) Travaux Pratiques Mettre la casquette de l’administrateur Connexion au serveur : if( $id = mysql_connect(‘’localhost’’,’’root’’,’’’’) ) { if(mysql_select_db(‘’CDI’’) ) { echo ‘’Succès de connexion.’’; /* code du script … */ } else { die(‘’Echec de connexion à la base.’’); } mysql_close($id); } else { die(‘’Echec de connexion au serveur de base de données.’’); } mysql_fetch_row($result) : retourne une ligne de résultat (un tuple) sous la forme d’un tableau. Les éléments du tableau étant les valeurs des attributs de la ligne. Retourne FALSE s’il n’y a plus aucune ligne. Exemple 1 : $requet = ‘’SELECT * FROM personne’’; if($result = mysql_query($requet)) { while($ligne = mysql_fetch_row($result)) { $id = $ligne[0]; $nom = $ligne[1]; $prenom = $ligne[2]; $classe=$ligne[3]; echo ‘’$id - $nom, $prenom,$classe <br>’’; } } else { echo ‘’Erreur de requête de base de données.’’; Travaux Pratiques Mettre la casquette de l’administrateur Programmation du poste Documentaliste (version V0.0) Compléter le programme documentaliste.php pour permettre à la documentaliste d’afficher la liste des élèves retardataires. Présentation du Système existant Système de relevé de T° Internet Ethernet <TCP/IP> Postes distants Création d’un client (Apache/PHP) pour un serveur de BD MysQL Système d’exploitation (OS) Postes clients Internet Serveur WEB (HTTP) Moteur PHP Serveur BD disque Système d’exploitation (OS) Navigateur Script en PHP Base données ETUDE Travaux Pratiques BASE DE DONNEES: ETUDE La base de données ETUDE contient les températures corporelles de 16 Rats (propre ( Aïli, Peanut, Pot'dcolle, Abricot ,Globule, Kaïna, Pimousse, Bob, Grima,Sun, Louna, Yoda, Brisby,bulle ,Daisy, Dipsy ). En utilisant l’éditeur des requêtes SQL, donner les requêtes S.Q.L permattant : d’afficher les températures d’un Rat D’afficher la moyenne des températures : Tête, Corps et Queue d’un rat. D’obtenir la température la plus élevée et la plus basse de la Tête, Corps et Queue d’un Rat. Travaux Pratiques Mettre la casquette de l’administrateur Programmation du poste chercheur: Ecrire un programme c pour permettre au chercheur d’afficher d’afficher les températures d’un Rat D’afficher la moyenne des températures : Tête, Corps et Queue d’un rat. D’obtenir la température la plus élevée et la plus basse de la Tête, Corps et Queue d’un Rat.