cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : Gestion des bases de données (MySQL) Par : Sahbi SIDHOM MCF. Université Nancy 2 Équipe de recherche SITE – LORIA
2 Le but de ce cours est de vous donner les bases nécessaires pour réaliser : des interfaces entre MySQL et le langage de script PHP ; de générer des pages web dynamiques ; de gérer des contenus structurés.
3 Introduction
4 Qu'est-ce que MySQL ? MySQL est un SGBD-R (Système de Gestion de Bases de Données Relationnelles) client-serveur. La Base de Données est une collection de données structurées, elle comporte des : Tables : des collections de données (ex. le nom, le prénom, l'adresse et le numéro de téléphone de tous les particuliers qui habitent dans le Rhône, c'est une table que nous nommerons ANNUAIRE ) Tuples/n-uplets/ Enregistrements/Lignes : un tuple est un enregistrement complet dans la table (ex. un particulier : Sidhom / Sahbi / LORIA BP Nancy cedex / ) Attributs/colonnes : les colonnes seront dans notre exemple nom, prénom, adresse, numéro de téléphone)
5 le Système de Gestion ( par son interface PhpMyAdmin ) est un logiciel utilisé pour créer, insérer, modifier, supprimer, lire des enregistrements. le modèle Relationnel permet de stocker les informations dans des tables séparées et d'associer des données d'une table à une autre : si l'adresse ne soit pas stockée dans une colonne de la table ANNUAIRE, mais elle peut l’être dans une table ADRESSE qui permet de décomposer l'adresse en colonnes (n° de Rue, Nom de Rue, Code_Postal, Ville, Pays).
6 MySQL est client-serveur le serveur est une application installée sur l'ordinateur où sont stockées les données ; il attend des requêtes des clients, accède à la base pour exécuter la requête du client et lui fournir une réponse ; le client est un programme installé sur votre ordinateur qui se connecte par l'intermédiaire d'un réseau au serveur pour effectuer une requête ;
7 Que comporte MySQL ? un serveur SQL (Structured Query Language) ; des programmes clients pour accéder au serveur (mysql, mysqldump, mysqlimport) ; des outils d'administration ; une interface de programmation pour écrire des applications.
8 Avantages ? « très » rapide ; multi-utilisateurs ; disponible sur Internet ( ; gratuit ; facile à utiliser : un manuel de référence est fourni ; interfaces de programmation (API) : C, Perl, PHP, Python et Java ; langage de requête : SQL (langage de requête le plus répandu) ; portabilité, MySQL fonctionne sous : unix et linux ; solaris (OS/2) ; Mac Os Xserver ; windows. open software, i.e. le code source est disponible ( bugs sont corrigés par la communauté et des nouvelles versions sont disponibles sur Internet dès leurs apparitions).
9 Syntaxe du langage SQL : SGBD & Gestion avec PhpMyAdmin Exemples de requête en SQL
10 Création : base, table Base : CREATE DATABASE `esce` ; USE esce; Table : CREATE TABLE `personne` ( `Id` INT NOT NULL AUTO_INCREMENT, `Nom` VARCHAR( 20 ) NOT NULL, `Prenom` VARCHAR( 20 ) NOT NULL, `Adresse` VARCHAR( 50 ) NOT NULL, `Tel` VARCHAR( 8 ) NOT NULL, `Statut` VARCHAR( 20 ) NOT NULL, PRIMARY KEY ( `Id` ) ); CREATE TABLE `administration` ( `Id` INT NOT NULL AUTO_INCREMENT, `Nom` VARCHAR( 20 ) NOT NULL, `Adresse` VARCHAR( 50 ) NOT NULL, `Tel` VARCHAR( 20 ) NOT NULL, PRIMARY KEY ( `Id` ) );
11 Insertion : tuple, attribut Insertion d’un tuple : INSERT INTO `personne` ( `Id`, `Nom`, `Prenom`, `Adresse`, `Tel`, `Statut` ) VALUES ( '', 'Dupond', 'Jean', 'Lyon 69000', ' ', 'Enseignant'); Insertion d’un attribut : ALTER TABLE `annuaire` ADD `Prenom` VARCHAR( 20 ) NOT NULL AFTER `Nom` ;
12 Mise à jour Mise à jour d’un tuple : UPDATE `personne` SET `Statut` = 'Etudiant' WHERE `Id` =1;
13 Suppression d’un tuple DELETE FROM personne WHERE Id=8;
14 Requête SELECT Requête d’interrogation : SELECT * FROM personne ; SELECT `Nom`, `Prenom`, `Tel`, `Statut` FROM `personne` ; SELECT * FROM `personne` WHERE Nom = "sidhom" ;
15 Produit cartésien Entre 2 tables : SELECT * FROM personne, administration ;
16 Jointure naturelle Entre 2 tables : SELECT * FROM personne, administration WHERE personne.Nom= administration.Nom;
17 I. SERVEURS Wamp, EasyPhp, …
18 Serveur : WAMP server
19 Serveur : EasyPHP
20 Plus d'informations Pour plus d'informations ou en cas de problème avec un serveur, allez sur : wampserver.com, ou EasyPHP.org Commencez par consulter : FAQ, puis le Forum
21 PhpMyAdmin avec EasyPHP
22 II. Interface de PhpMyAdmin avec Wamp, MySQL, …
23 Interface de phpMyAdmin
24 Fonctionnalités : créer une BDD : créer une Table :
25 Fonctionnalités : consulter une table
26 Fonctionnalités : création des attributs
27 Fonctionnalités : insertion de valeurs
28 Affichage : table dans une BDD
29 Interface de modification
30 Modifications sur un attribut
31 Interface d’insertion
32 III. Langage SQL Syntaxe du langage des requêtes
33 Langage : SQL requête
34 CREATE
35 INSERT
36 SELECT
37 DELETE
38 JOINTURE