1/41
BDW1 : Bases de données et Programmation Web
Nicolas Lumineau
nicolas.lumineau@univ-lyon1.fr Université Claude Bernard Lyon 1
Licence 2e année - 2017/2018
http://liris.cnrs.fr/nicolas.lumineau/teaching/ > Licence 2 > BDW1
2/41
Équipe pédagogique :
CM : Nicolas Lumineau TD :
Nicolas Lumineau (A), Roland Kotto-Kombi (B), Rihad Ayeb (C), Gabriela Paris (D)
TP :
Nicolas Lumineau (A1 + A2),
Romuald Thion (B1), Roland Kotto-Kombi (B2), Rihad Ayeb (C1), Aurélie Kong-Win-Chan (C2), Franck Favetta (D1 + D2)
Évaluations (NF : Note Finale) :
Présence et participation aux TDs (10% de NF) Projet (soutenance + code + tests) (40% de NF)
Examen (50% de NF)
Besoins :
3/41
DBW1 ça parle de ...
Données
Comment gérer (stocker/interroger) des données ?
Web
Comment développer des pages web, en particulier avec des données qui évoluent/sont mises à jour ?
et encore un peu de Réseau (condensé partiel de LIFASR2)
Comment se gère la communication via un réseau ?
4/41
1 [BD & Web] Introduction
Introduction et motivation Le modèle relationnel 2 [BD]La syntaxe SQL SQL : de la projection à la jointure SQL : sous-requêtes et regroupements Commandes SQL
3 [BD]Conception de base de données
Schéma Entité/Association
Du modèle conceptuel au modèle relationnel
4 [Web] Programmation Web
Le langage HTML/CSS Le langage PHP
Interrogation d’une BD via PHP
5 [BD] Optimisation de requête
Algèbre Relationnelle
5/41
Partie 1 : Introduction & motivations
1 A propos des données
De la donnée à la Base de Données Système de Gestion de Bases de Données
2 A propos du Web
De la page Web statique à la page Web dynamique Accès à un SGBD via une page Web dynamique
6/41
Qu’est-ce qu’une donnée ?
Une donnée est un élément du monde qui se distingue des autres. Une donnée peut être :
Des objets ou des personnes avec potentiellement des caractéristiques :
Un ’enseignant’ caractérisé par son prénom (Nicolas), sa taille (1m98) ...
Un ’cours’ caractérisé par son intitulé (Base de Données et Web), son nombre d’ECTS (6)...
Une ’événement’ caractérisé par un libellé (Premier cours magistral), une date (27/01/2017)...
Une ’voiture’, un ’compte bancaire’, une ’vente’ ...
Mais aussi les liens ou les relations entre ces objets :
L’enseignant ’Nicolas’ délivre le cours ’Base de données et Web’ à partir de l’événement en date du ’27/01/2017’.
7/41
A propos des données A propos du Web Bilan
Exemples de collections de données
Une banque qui gère un ensemble de données sur ses clients, sur ses comptes bancaires, sur ses employés...
Un concessionnaire qui gère un ensemble de données sur ses clients, les voitures qu’il a en stock, les ventes effectuées... Une université qui gère un ensemble de données sur ses enseignants, ses chercheurs, son personnel administratif, ses étudiants, ses formations...
Une bibliothèque qui gère un ensemble de données sur les ouvrages dont elle dispose, les adhérents qu’elle compte et les prêts effectués...
Comment gérer ces collections de données ?
8/41
Qu’est-ce que de la gestion de données ?
Organiser les données
Comment je m’organise pour gérer des livres, des emprunts et des personnes ensemble ?
Exploiterles données
Comment répondre à la question : Quels livres ont été empruntés par ’Ella PATOULU’ depuis le 1 janvier 2016 ?
Partager les données
Comment permettre aux différents personnels de la bibliothèque d’accéder aux notices bibliographiques ou aux emprunts ?
9/41
A propos des données A propos du Web Bilan
Évolution du stockage des données
10/41
Pourquoi ne pas se contenter de fichiers informatiques ?
Quand on utilise des fichiers pour gérer un ensemble de données : Chaque application définit et gère ses fichiers
Un fichier est une suite d’enregistrements contenant des données logiquement liées
bibliothèques dans les différents langages de programmation pour simplifier la lecture et l’écriture dans ces fichiers
Nécessite une intégration étroite entre le programme et les fichiers
la manipulation des fichiers est directement intégrée dans le programme
11/41
A propos des données A propos du Web Bilan
Gestion de données par fichiers informatiques
Inconvénients/risques des fichiers informatiques : Redondance(coût de stockage et d’accès)
les coordonnées d’un client seront stockées dans plusieurs fichiers
Incohérence(souvent liée à la redondance)
lors d’un changement d’adresse d’un client, il faut vérifier que cette adresse est mise à jour dans tous les fichiers où elle apparaît (encore faut-il savoir où ?)
Difficulté d’accès (les utilisateurs ne peuvent pas faire des requêtes non prévues dans les programmes)
12/41
Gestion de données par fichiers informatiques (2)
Inconvénients/risques des fichiers informatiques : Anomalies dues à la concurrence
deux programmes lisent le même solde d’un compte et ajoutent chacun une somme à ce compte, seul le dernier ajout sera pris en compte
Manque de sécurité, tout le monde ne doit pas pouvoir voir ou modifier les mêmes données
un employé ne peut voir que son salaire, pas celui des autres
Gestion de l’intégrité (les données obéissent à des contraintes que chaque programme doit vérifier avant de modifier)
13/41
A propos des données A propos du Web Bilan
Constat sur la gestion de données
Trop d’inconvénients/risques liés à la gestion de données par fichiers informatiques
⇒ Approche par fichier inefficace !
14/41
Quel est le besoin ?
Disposer d’une collection de données, appelée Base de Données, vérifiant les propriétés suivantes :
une donnée est enregistrée (sur un support adressable), la structure d’une donnée ne dépend pas de l’application qui l’interroge
la valeur d’une donnée est cohérente (pas de valeurs différentes pour une même donnée selon l’enregistrement) les données ont une redondance minimale (la multiplication des enregistrements d’une donnée est limitée)
une donnée est accessible de manière concurrente par plusieurs utilisateurs
15/41
Plan
1 A propos des données
De la donnée à la Base de Données Système de Gestion de Bases de Données
2 A propos du Web
De la page Web statique à la page Web dynamique Accès à un SGBD via une page Web dynamique
16/41
Comment gérer une Base de Données ?
En utilisant un Système de Gestion de Base de Données !
Un Système de Gestion de Bases de Données est une application qui permet de définir et manipuler des bases de données.
Acronyme : SGBD
17/41
A propos des données A propos du Web Bilan
Quels sont les objectifs d’un SGBD ?
Un SGBD a pour objectif :
d’offrir différents niveaux d’abstraction
d’assurer l’indépendance physique des données d’assurer l’indépendance logique des données de contrôler la redondance des données
de permettre à tout type d’utilisateur de manipuler des données
d’assurer l’intégrité des données d’assurer le partage des données d’assurer la sécurité des données d’optimiser l’accès aux données
18/41
Dans un SGBD... quel niveau d’abstraction et pour qui ?
Structuration d’un SGBD en trois niveaux d’abstraction pour trois profils d’utilisateur :
Niveau vue/externe → profil utilisateur
Permet la présentation partielle des données
Niveau multiple pour une BD selon les besoins des utilisateurs
Niveau conceptuel/logique → profil concepteur
Permet la description des données Niveau unique pour une BD
Niveau physique/interne → profil administrateur
Permet de gérer le stockage et l’accès aux données Niveau unique pour une BD
19/41
A propos des données A propos du Web Bilan
Quels sont les objectifs d’un SGBD ?
Un SGBD a pour objectif :
d’offrir différents niveaux d’abstraction
d’assurer l’indépendance physique des données d’assurer l’indépendance logique des données
de contrôler la redondance des données
de permettre à tout type d’utilisateur de manipuler des données
d’assurer l’intégrité des données d’assurer le partage des données d’assurer la sécurité des données d’optimiser l’accès aux données
20/41
Dans un SGBD... quels indépendances ?
L’indépendance physique des données
Permet à l’utilisateur du niveau conceptuel d’ignorer la structure du niveau physique.
Offre les avantages :
Simplification des programmes qui n’ont pas d’éléments complexes (structure, méthode d’accès...) à manipuler Limitation des répercutions sur les programmes en cas de modification au niveau physique
L’indépendance logique des données
Permet à l’utilisateur du niveau vue d’ignorer la structure du niveau conceptuel.
Offre les avantages :
Absence de vue globale sur toutes les données pour les programmes
Limitation des répercutions sur les applications du niveau externe, en cas d’une modification du schéma au niveau conceptuel
21/41
A propos des données A propos du Web Bilan
Quels sont les objectifs d’un SGBD ?
Un SGBD a pour objectif :
d’offrir différents niveaux d’abstraction
d’assurer l’indépendance physique des données d’assurer l’indépendance logique des données de contrôler la redondance des données
de permettre à tout type d’utilisateur de manipuler des données
d’assurer l’intégrité des données d’assurer le partage des données d’assurer la sécurité des données d’optimiser l’accès aux données
22/41
Quelles fonctionnalités pour un SGBD ?
Un SGBD permet :
de définir la Base de Données
Objectif :
Construire le schéma de la base de données
Outil :
Langage de Description de Données (LDD)
Langage de Description de Données
Permet de spécifier :
l’organisation/la structuration des données les types de données
les contraintes d’intégrité (cohérence) sur les données
Est unique, commun aux différentes applications
⇒ ce n’est pas l’application qui guide la structuration mais les données à représenter.
23/41
A propos des données A propos du Web Bilan
Quelles fonctionnalités pour un SGBD ?
Un SGBD permet :
de manipuler les données dans la BD
Objectif :
Rechercher, créer, modifier et supprimer de données
Outil :
Langage de Description de Données (LMD)
Langage de Manipulation des Données
Permet de spécifier :
ce que l’on veut faire ou obtenir plutôt que comment le faire ou l’obtenir
Garantit l’indépendance entre les données et les applications
24/41
Quelles fonctionnalités pour un SGBD ?
Un SGBD permet :
de garantir l’intégrité des données
Définition de contraintes d’intégrité spécifiées dans le schéma de la base
Possibilité de programmer des contraintes d’intégrités complexes
de gérer les défaillances (panne)
Restauration de la BD dans un état cohérent et récent
de gérer la concurrence
Possibilité d’accès multiple tout en garantissant la cohérence du résultat
de gérer un modèle transactionnel
Validation ou annulation d’une suite d’opérations liées
25/41
A propos des données A propos du Web Bilan
Mais comment accède-t-on à un SGBD ?
Interactions avec le SGBD : Interpréteur de commandes Interface graphique
Dans un langage de programmation
C, C++, Java, Python, PHP, ...
via des bibliothèques adéquates pour envoyer les requêtes vers le SGBD.
Via des environnements de reformulation des requêtes
26/41
Bilan de cet ’A propos des données’
La gestion de Bases de données nécessite des outils permettant de garantir certaines propriétés sur les données que l’on définit et que l’on manipule.
Une approche par simple fichier informatique est insatisfaisant car avec trop de limitations
L’utilisation d’un SGBD a pour objectif de garantir ces propriétés via ses différentes fonctionnalités
27/41
A propos des données A propos du Web Bilan
Premier objectif de BDW1
Initiation à la gestion des Bases de Données
Vous allez acquérir des compétences théoriques et pratiques pour : Concevoir une base de données (modélisation)
Manipuler des données d’une base (langages SQL, AR) Comprendre ce qui se passe/ce qu’il est nécessaire de faire quand on interroge une base de données (exécution de requête et optimisation)
Concrètement, vous manipulerez une base de données pour définir et manipuler des données.
Technologies utilisées :
28/41 1 A propos des données
De la donnée à la Base de Données Système de Gestion de Bases de Données
2 A propos du Web
De la page Web statique à la page Web dynamique Accès à un SGBD via une page Web dynamique
29/41
A propos des données A propos du Web Bilan
Mais au fait... ! ? !
Pourquoi une UE où l’on mélange Bases de Données et WEB ?
Parce que sans réseau ni web, notre BD resterait "notre BD", ie celle qui est sur notre ordinateur !
30/41
Mais au fait... ! ? !
Pourquoi une UE où l’on mélange Bases de Données et WEB ?
31/41
A propos des données A propos du Web Bilan
Mais au fait... ! ? !
Pourquoi une UE où l’on mélange Bases de Données et WEB ?
Parce que nous pouvons être ’plusieurs’ à vouloir accéder à des données distantes !
32/41
Quand on parle de Web...
On parle :
d’accès à l’information
de navigation à travers des liens hypertextes On s’intéresse à :
Tout ce qui peut être traité dans un navigateur Web Tout ce qui peut être transféré par le protocole HTTP
33/41
A propos des données A propos du Web Bilan
Qu’est-ce qu’une page Web statique ?
C’est une page :
publiée sur un serveur Web dont le contenu est
structuré en fonction de balise HTML écrit dans un fichier .html (ou .xhtml)
dont le format est défini selon des instructions CSS Une page Web statique est... statique !
Quelque soit l’utilisateur qui accède à la page, ou l’heure à laquelle se fait l’accès, c’est toujours le même contenu.
Toute modification de contenu doit se faire directement sur le serveur Web.
34/41
Comment accéder à une page Web statique ?
35/41
A propos des données A propos du Web Bilan
Qu’est-ce qu’une page Web dynamique ?
C’est une page :
publiée sur un serveur Web dont le contenu est
structuré en fonction de balise HTML
généré par un programme dans un fichier .php (ou .jsp...)
dont le format est défini selon des instructions CSS Une page Web dynamique adapte son contenu en fonction de paramètres !
Toute modification de contenu est géré dynamiquement par le programme.
36/41
Comment accéder à une page Web dynamique ?
37/41
A propos des données A propos du Web Bilan
Constat sur la génération de pages Web dynamiques
Si le programme qui génère le contenu de la page Web peut se connecter et interroger un SGBD
Alors il devient possible d’afficher/manipuler les données du SGBD via une page Web dynamique.
38/41
Comment accéder à une base de données via le Web ?
39/41
A propos des données A propos du Web Bilan
Second objectif de BDW1
Initiation à la programmation Web
Vous allez acquérir des compétences théoriques et pratiques pour : créer des pages statiques et surtout dynamiques accessible dans un navigateur Web
Manipuler des données d’une base via des librairies
Concrètement, vous allez construire un contenu Web à partir de données stockées dans un SGBD.
40/41 1 A propos des données
De la donnée à la Base de Données Système de Gestion de Bases de Données
2 A propos du Web
De la page Web statique à la page Web dynamique Accès à un SGBD via une page Web dynamique
41/41
A propos des données A propos du Web Bilan
Finalement, DBW1 ça parle de ...
Données et de Web
Comment concevoir une base de données dans un SGBD Comment manipuler/interroger les données dans un SGBD Comment publier les données d’un SGBD sur le Web