Intégration web & Base de données 1 Intégration Web & Base de DonnéesMariem Farhat Intérêt des bases de données pour le Web Cours préparé par : Mariem Farhat Classe : LFSIM2 2016/2017 Institut Supérieur de l’Informatique et Multimédia
Chronologie et dépendance Développement web 1: HTML- CSS Base de données: SQL Développement Web 2: PHP Intégration web et BD: PHP-SQL 2 Intégration Web & Base de DonnéesMariem Farhat LFSIM 1 LFSIM 2
Chronologie et dépendance: Développement web 1 3 Intégration Web & Base de DonnéesMariem Farhat De beaux Sites web Mais statique
Principe de fonctionnement des sites web statiques 4 Intégration Web & Base de DonnéesMariem Farhat Les clients : ce sont les ordinateurs des internautes comme vous. Votre ordinateur fait donc partie de la catégorie des clients. Chaque client représente un visiteur d'un site web. Les serveurs : ce sont des ordinateurs puissants qui stockent et délivrent des sites web aux internautes, c'est-à-dire aux clients.
Principe de fonctionnement des sites web statiques 5 Intégration Web & Base de DonnéesMariem Farhat navigateur Serveur web 1. Donnes moi la page web XXX.html 2. Lecture du disque 3. Retourne XXX.html 4. Affiche XXX.html
Exemple de site web statique 6 Intégration Web & Base de DonnéesMariem Farhat Site personnelSite d’une association ou d’un club
Limites des pages statiques 7 Intégration Web & Base de DonnéesMariem Farhat Invariables et préparées à l’avance. Le serveur renvoie ces pages à l’utilisateur mais n’effectue aucune action particulière. Le code source de la page affichée par le navigateur sur le poste client est identique au code source de la page web installée sur le serveur.
Limite des pages statiques 8 Intégration Web & Base de DonnéesMariem Farhat 1.il est difficile de faire évoluer les pages –Ajout de nouveaux voyages. –Suppression d’une promotion. 2.manque d’interactivité –Les informations sont les même à chaque consultation pour tous les internautes. 3.les contenus ne sont pas personnalisés à la demande du client –L’internaute ne peut pas chercher un voyage vers une destination particulière pour une date donnée.
Chronologie et dépendance Développement web 1: HTML- CSS Base de données: SQL Développement Web 2: PHP Intégration web et BD: PHP-SQL 9 Intégration Web & Base de DonnéesMariem Farhat LFSIM 1 LFSIM 2
Principe de fonctionnement des sites web dynamiques 10 Intégration Web & Base de DonnéesMariem Farhat La page web est générée à chaque fois qu'un client la réclame. C'est précisément ce qui rend les sites dynamiques vivants : le contenu d'une même page peut changer d'un instant à l'autre.
Principe de fonctionnement des sites web dynamiques 11 Intégration Web & Base de DonnéesMariem Farhat navigateur Serveur web 1. Donnes moi la page web XXX.html 2. Appel à un programme4. Retourne XXX.html 5. Affiche XXX.html Page sur le serveurPage générée par le programme 3. Fabrication de la page HTML
Exemple de site web dynamique 12 Intégration Web & Base de DonnéesMariem Farhat
Les données du web 13 Intégration Web & Base de DonnéesMariem Farhat 1.Données hétérogènes –Exp. Données concernant les voyages, les hôtels, les vols … 2.Données fortement corrélées –Exp. Données des voyages qui sont en relation avec les vols 3.Données évolutives –Exp. Ajout/Modification/Suppression de voyages 4.Un volume important de données Problème de Gestion des données Gestion de l’indépendance Physique/Logique Performance (index?) Besoin des fonctionnalités d’un SGBD
Chronologie et dépendance Développement web 1: HTML- CSS Base de données: SQL Développement Web 2: PHP Intégration web et BD: PHP-SQL 14 Intégration Web & Base de DonnéesMariem Farhat LFSIM 1 LFSIM 2
Apports des SGBD 15 Intégration Web & Base de DonnéesMariem Farhat Gestion de gros volumes d’information Bonnes performances d’accès : index, stockage, gestion du disque Fiabilité des données : cohérence, sûreté de fonctionnement, sûreté d’accès Partage et accès concurrents : transactions Productivité : indépendance physique-logique, réutilisation, outils Evolutivité : évolution du schéma Langage de requêtes et optimisation
Chronologie et dépendance Développement web 1: HTML- CSS Base de données: SQL Développement Web 2: PHP Intégration web et BD: PHP-SQL 16 Intégration Web & Base de DonnéesMariem Farhat LFSIM 1 LFSIM 2 Nous sommes ici!
Principe de fonctionnement des sites web dynamiques avec base de données 17 Intégration Web & Base de DonnéesMariem Farhat navigateur Serveur web 1. Donnes moi la page web XXX.html 2. Appel à un programme6. Retourne XXX.html 7. Affiche XXX.html Page sur le serveur Page générée par le programme 5. Fabrication de la page HTML Serveur base de données 3. Interrogation de la base de données 4. Renvoie de la réponse au serveur web
Couplage BD et WWW 18 Intégration Web & Base de DonnéesMariem Farhat Deux domaines qui se sont développés indépendamment –WWW: page statique page dynamique –SGBD: bd hiérarchique bd réseau bd relationnelle Nombreux points communs : –Grands volumes de données Modélisation Stockage Indexation interrogation Multi-utilisateurs Performances Fiabilité
Répondre au défis: Couplage BD et WWW 19 Intégration Web & Base de DonnéesMariem Farhat Il existe deux mondes : celui des bases de données, où vous parlez SQL, et celui du Web, où vous parlez HTML, PHP. Pour rendre une base de données accessible sur le Web, vous devez établir un pont entre ces deux langages.
Objectifs du cours 20 Intégration Web & Base de DonnéesMariem Farhat Apprendre à intérroger une base de données à partir d’une page PHP via deux bibliothèques: –Mysqli –PDO Apprendre à presenter le résultat d’une requête dans une page HTML
Intégration web & Base de données 21 Intégration Web & Base de DonnéesMariem Farhat Rappel SQL Cours préparé par : Mariem Farhat Classe : LFSIM2 2014/2015 Institut Supérieur de l’Informatique et Multimédia
LES BASES DE DONNEES RELATIONNELLES 22 Intégration Web & Base de DonnéesMariem Farhat Une base de données relationnelles est composée de relations qui peuvent se présenter sous forme de tables. Une relation est composée d’un ensemble d’attributs qui représentent les colonnes de la table. Les lignes de la tables sont des instances de la relation où chaque attribut peut prendre une valeur.
LES BASES DE DONNEES RELATIONNELLES 23 Intégration Web & Base de DonnéesMariem Farhat Exemple: base de données des étudiants –Etudiant(idE, nomE, AgeE, idC) –Classe(idC, NomC, nbE) –Enseignant(NumEns, NomEns, Specialite) –Classe_Enseignant(NumEns, NumC) Représentation de la table Etudiant idEnomEAgeEidC 1Imen Ahmed192 2Ilyes Aloui204 3Dorra Adouni191 Attribut = colonne Ligne = instance
LES BASES DE DONNEES RELATIONNELLES 24 Intégration Web & Base de DonnéesMariem Farhat Les contraintes: Clé primaire: –Afin de pouvoir différentier les lignes d’une table, on définit une clé primaire qui permet de désigner une et une seule instance de la relation. –La clé primaire peut être simple (i.e. un seul attribute; exp. idE) ou composée (plusieurs attributs; exp. Nom+Prénom) –Les valeurs de la clé primaire doivent être distinctes (différentes les unes des autres; unique) et toujours non nul (autrement dit, elle doit toujours avoir une valeur). –Une clé primaire est toujours soulignée dans le schéma de la relation (c’est une convention). –Une table ne peut avoir qu’une seule clé primaire (simple ou composée), Exp. Etudiant(idE, nomE, AgeE, NumC)
LES BASES DE DONNEES RELATIONNELLES 25 Intégration Web & Base de DonnéesMariem Farhat Les contraintes: Clé étrangère: –Afin de relier les tables, on définit une clé étrangère. –Une clé étrangère est un attribut (un seul) dans une table B qui fait référence à une clé primaire (nécessairement) dans une autre table A. –Autrement dit, chaque valeur de la clé étrangère dans la table B faire référence à une et une seule ligne dans la table A. –Une clé étrangère est précédée par # dans le schéma de la relation. Exemple. Etudiant(idE, nomE, AgeE, #idC) –Une table peut ne pas avoir une clé étrangère.
LES BASES DE DONNEES RELATIONNELLES 26 Intégration Web & Base de DonnéesMariem Farhat –Etudiant(idE, nomE, AgeE, #idC) –Classe(idC, NomC, nbE) idEnomEAgeEidC 1Imen Ahmed 192 2Ilyes Aloui 204 3Dorra Adouni 191 idCnomCNbE 1LFSIM1A60 2LFSIM1B50 3LFSIM2A50 4LFSIM2B55 5LFSIM3A45
LES BASES DE DONNEES RELATIONNELLES 27 Intégration Web & Base de DonnéesMariem Farhat Les contraintes: –Unicité: Afin de forcer l’unicité d’un attribut, on peut définir la contrainte unique. Exp. L’attribut age dans la relation Etudiant doit être unique. –Domaine de valeur: Afin de limiter les valeurs d’un attribut à un domaine bien précis, on peut définir la contrainte check, Exp. L’attribut nbE dans la relation Classe doit être toujours compris entre 30 et 70.
SQL 28 Intégration Web & Base de DonnéesMariem Farhat SQL. signifie Structured Query Language: En français langage de requête structuré (e) Le langage SQL est utilisé par les principaux SGBDR : Oracle, MySQL, SQLServer, … SQL est à la fois: –Un langage d’interrogation des données (LID) – SELECT –Un langage de définition de données (LDD) - CREATE, ALTER, DROP –Un langage de manipulation de données (LMD) - UPDATE, INSERT, DELETE –Un langage de contrôle des accès aux données(LCD) - GRANT, REVOKE
Interrogation des données 29 Intégration Web & Base de DonnéesMariem Farhat Dans le cadre de ce rappel, nous nous limitons aux requêtes SQL qui permettent l’interrogation de la base de données. Nous supposons ainsi que les tables sont crées et remplies. SELECT [ { DISTINCT | DISTINCTROW } | ALL ] listeColonnes FROM nomTable1 [,nomTable2]... [ WHERE condition ] [ clauseRegroupement ] [ HAVING condition ] [ clauseOrdonnancement ] [ LIMIT [rangDépart,] nbLignes ] ;
Interrogation des données 30 Intégration Web & Base de DonnéesMariem Farhat Extraction de toutes les colonnes Extraction de certaines colonnes
Interrogation des données 31 Intégration Web & Base de DonnéesMariem Farhat Il est possible d’évaluer et d’afficher simultanément des expressions dans la clause SELECT (types numériques, DATE et DATETIME). Les opérateurs arithmétiques sont évalués par ordre de priorité (*, /, + et -).
Interrogation des données Ordonnancement 32 Intégration Web & Base de DonnéesMariem Farhat Pour trier le résultat d’une requête, il faut spécifier la clause d’ordonnancement par ORDER BY de la manière suivante : expression : nom de colonne, fonction SQL, constante, calcul. position : entier qui désigne l’expression (au lieu de la nommer) dans son ordre d’apparition dans la clause SELECT. ASC ou DESC : tri ascendant ou descendant (par défaut ASC). ORDER BY { expression1 | position1 | alias1 } [ASC | DESC] [,{expr2 | position2 | alias2} [ASC | DESC]
Interrogation des données Ordonnancement 33 Intégration Web & Base de DonnéesMariem Farhat
Interrogation des données Restriction (WHERE) 34 Intégration Web & Base de DonnéesMariem Farhat Les éléments de la clause WHERE d’une requête permettent de programmer l’opérateur de restriction. condition composée de colonnes, d’expressions, de constantes liées deux à deux entre des opérateurs : – de comparaison (>, =, =, ) ; – logiques (NOT, AND ou OR) ; – intégrés (BETWEEN, IN, LIKE, IS NULL). SELECT [ { DISTINCT | DISTINCTROW } | ALL ] listeColonnes FROM nomTable [aliasTable] ;
Interrogation des données Ordonnancement 35 Intégration Web & Base de DonnéesMariem Farhat Exemples: – Avec opérateurs logiques o L’ordre de priorité des opérateurs logiques est NOT, AND et OR. o Les opérateurs de comparaison (>, =, =, ) sont prioritaires par rapport à NOT. o Les parenthèses permettent de modifier ces règles de priorité.