Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1/41
BDW1 : Bases de données et Programmation Web
Nicolas Lumineau
Université Claude Bernard Lyon 1
Licence 2e année - 2017/2018
http://liris.cnrs.fr/nicolas.lumineau/teaching/> Licence 2 > BDW1
2/41
Organisation de BDW1
Équipe pédagogique :CM : Nicolas LumineauTD :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 :Travailler le projet hors des créneaux TP.
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 2
3/41
DBW1 ça parle de ...
DonnéesComment gérer (stocker/interroger) des données ?
WebComment développer des pages web, en particulier avec desdonné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 ?
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 3
4/41
Enseignements de BDW1
1 [BD & Web] IntroductionIntroduction et motivationLe modèle relationnel
2 [BD]La syntaxe SQLSQL : de la projection à la jointureSQL : sous-requêtes et regroupementsCommandes SQL
3 [BD]Conception de base de donnéesSchéma Entité/AssociationDu modèle conceptuel au modèle relationnel
4 [Web] Programmation WebLe langage HTML/CSSLe langage PHP
Interrogation d’une BD via PHP5 [BD] Optimisation de requête
Algèbre RelationnelleTransformation d’arbres algébriques
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 4
5/41
Partie 1 : Introduction & motivations
1 A propos des donnéesDe la donnée à la Base de DonnéesSystème de Gestion de Bases de Données
2 A propos du WebDe la page Web statique à la page Web dynamiqueAccès à un SGBD via une page Web dynamique
3 Bilan
6/41
A propos des données A propos du Web Bilan
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 descaractéristiques :
Un ’enseignant’ caractérisé par son prénom (Nicolas), sa taille(1m98) ...Un ’cours’ caractérisé par son intitulé (Base de Données etWeb), son nombre d’ECTS (6)...Une ’événement’ caractérisé par un libellé (Premier coursmagistral), 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 etWeb’ à partir de l’événement en date du ’27/01/2017’.
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 6
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 sesclients, les voitures qu’il a en stock, les ventes effectuées...Une université qui gère un ensemble de données sur sesenseignants, ses chercheurs, son personnel administratif, sesétudiants, ses formations...Une bibliothèque qui gère un ensemble de données sur lesouvrages dont elle dispose, les adhérents qu’elle compte et lesprêts effectués...
Comment gérer ces collections de données ?
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 7
8/41
A propos des données A propos du Web Bilan
Qu’est-ce que de la gestion de données ?
Organiser les donnéesComment je m’organise pour gérer des livres, des emprunts etdes personnes ensemble ?
Exploiter les donnéesComment répondre à la question : Quels livres ont étéempruntés par ’Ella PATOULU’ depuis le 1 janvier 2016 ?
Partager les donnéesComment permettre aux différents personnels de labibliothèque d’accéder aux notices bibliographiques ou auxemprunts ?
Organiser + Exploiter + Partager = Gérer
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 8
9/41
A propos des données A propos du Web Bilan
Évolution du stockage des données
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 9
10/41
A propos des données A propos du Web Bilan
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 desdonnées logiquement liées
bibliothèques dans les différents langages de programmationpour simplifier la lecture et l’écriture dans ces fichiers
Nécessite une intégration étroite entre le programme et lesfichiers
la manipulation des fichiers est directement intégrée dans leprogramme
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 10
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 plusieursfichiers
Incohérence (souvent liée à la redondance)lors d’un changement d’adresse d’un client, il faut vérifier quecette adresse est mise à jour dans tous les fichiers où elleapparaît (encore faut-il savoir où ?)
Difficulté d’accès (les utilisateurs ne peuvent pas faire desrequêtes non prévues dans les programmes)
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 11
12/41
A propos des données A propos du Web Bilan
Gestion de données par fichiers informatiques (2)
Inconvénients/risques des fichiers informatiques :
Anomalies dues à la concurrencedeux programmes lisent le même solde d’un compte etajoutent chacun une somme à ce compte, seul le dernier ajoutsera pris en compte
Manque de sécurité, tout le monde ne doit pas pouvoir voirou 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 à descontraintes que chaque programme doit vérifier avant demodifier)
un compte ne peut avoir un solde inférieur à −500€
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 12
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 parfichiers informatiques
⇒ Approche par fichier inefficace !
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 13
14/41
A propos des données A propos du Web Bilan
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 quil’interrogela valeur d’une donnée est cohérente (pas de valeursdifférentes pour une même donnée selon l’enregistrement)les données ont une redondance minimale (la multiplicationdes enregistrements d’une donnée est limitée)une donnée est accessible de manière concurrente par plusieursutilisateurs
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 14
15/41
Plan
1 A propos des donnéesDe la donnée à la Base de DonnéesSystème de Gestion de Bases de Données
2 A propos du WebDe la page Web statique à la page Web dynamiqueAccès à un SGBD via une page Web dynamique
3 Bilan
16/41
A propos des données A propos du Web Bilan
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 applicationqui permet de définir et manipuler des bases de données.
Acronyme :SGBDen anglais DBMS pour DataBase Management System
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 16
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’abstractiond’assurer l’indépendance physique des donnéesd’assurer l’indépendance logique des donnéesde contrôler la redondance des donnéesde permettre à tout type d’utilisateur de manipuler desdonnéesd’assurer l’intégrité des donnéesd’assurer le partage des donnéesd’assurer la sécurité des donnéesd’optimiser l’accès aux données
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 17
18/41
A propos des données A propos du Web Bilan
Dans un SGBD... quel niveau d’abstraction et pour qui ?
Structuration d’un SGBD en trois niveaux d’abstraction pour troisprofils d’utilisateur :
Niveau vue/externe → profil utilisateurPermet la présentation partielle des donnéesNiveau multiple pour une BD selon les besoins des utilisateurs
Niveau conceptuel/logique → profil concepteurPermet la description des donnéesNiveau unique pour une BD
Niveau physique/interne → profil administrateurPermet de gérer le stockage et l’accès aux donnéesNiveau unique pour une BD
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 18
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’abstractiond’assurer l’indépendance physique des donnéesd’assurer l’indépendance logique des donnéesde contrôler la redondance des donnéesde permettre à tout type d’utilisateur de manipuler desdonnéesd’assurer l’intégrité des donnéesd’assurer le partage des donnéesd’assurer la sécurité des donnéesd’optimiser l’accès aux données
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 19
20/41
A propos des données A propos du Web Bilan
Dans un SGBD... quels indépendances ?
L’indépendance physique des donnéesPermet à l’utilisateur du niveau conceptuel d’ignorer lastructure du niveau physique.Offre les avantages :
Simplification des programmes qui n’ont pas d’élémentscomplexes (structure, méthode d’accès...) à manipulerLimitation des répercutions sur les programmes en cas demodification au niveau physique
L’indépendance logique des donnéesPermet à l’utilisateur du niveau vue d’ignorer la structure duniveau conceptuel.Offre les avantages :
Absence de vue globale sur toutes les données pour lesprogrammesLimitation des répercutions sur les applications du niveauexterne, en cas d’une modification du schéma au niveauconceptuel
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 20
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’abstractiond’assurer l’indépendance physique des donnéesd’assurer l’indépendance logique des donnéesde contrôler la redondance des donnéesde permettre à tout type d’utilisateur de manipuler desdonnéesd’assurer l’intégrité des donnéesd’assurer le partage des donnéesd’assurer la sécurité des donnéesd’optimiser l’accès aux données
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 21
22/41
A propos des données A propos du Web Bilan
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éesPermet de spécifier :
l’organisation/la structuration des donnéesles types de donnéesles 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 lesdonnées à représenter.
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 22
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éesPermet de spécifier :
ce que l’on veut faire ou obtenir plutôt que comment le faireou l’obtenir
Garantit l’indépendance entre les données et les applications
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 23
24/41
A propos des données A propos du Web Bilan
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émade la basePossibilité de programmer des contraintes d’intégritéscomplexes
de gérer les défaillances (panne)Restauration de la BD dans un état cohérent et récent
de gérer la concurrencePossibilité d’accès multiple tout en garantissant la cohérencedu résultat
de gérer un modèle transactionnelValidation ou annulation d’une suite d’opérations liées
de gérer la sécurité et la confidentialité des données
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 24
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 commandesInterface graphiqueDans un langage de programmation
C, C++, Java, Python, PHP, ...via des bibliothèques adéquates pour envoyer les requêtes versle SGBD.
Via des environnements de reformulation des requêtes
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 25
26/41
A propos des données A propos du Web Bilan
Bilan de cet ’A propos des données’
La gestion de Bases de données nécessite des outils permettantde garantir certaines propriétés sur les données que l’on définit etque l’on manipule.
Une approche par simple fichier informatique est insatisfaisant caravec trop de limitations
L’utilisation d’un SGBD a pour objectif de garantir ces propriétésvia ses différentes fonctionnalités
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 26
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 fairequand on interroge une base de données (exécution de requêteet optimisation)
Concrètement, vous manipulerez une base de données pour définiret manipuler des données.Technologies utilisées :
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 27
28/41
Partie 1 : Introduction & motivations
1 A propos des donnéesDe la donnée à la Base de DonnéesSystème de Gestion de Bases de Données
2 A propos du WebDe la page Web statique à la page Web dynamiqueAccès à un SGBD via une page Web dynamique
3 Bilan
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", iecelle qui est sur notre ordinateur !
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 29
30/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 le besoin est de pouvoir accéder à des données distantes !
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 30
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 à desdonnées distantes !
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 31
32/41
A propos des données A propos du Web Bilan
Quand on parle de Web...
On parle :d’accès à l’informationde navigation à travers des liens hypertextes
On s’intéresse à :Tout ce qui peut être traité dans un navigateur WebTout ce qui peut être transféré par le protocole HTTP
L’information se présente sous forme de page avec un contenu !
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 32
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 Webdont 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 à laquellese fait l’accès, c’est toujours le même contenu.
Toute modification de contenu doit se faire directement sur leserveur Web.
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 33
34/41
A propos des données A propos du Web Bilan
Comment accéder à une page Web statique ?
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 34
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 Webdont le contenu est
structuré en fonction de balise HTMLgé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 deparamètres !
Toute modification de contenu est géré dynamiquement par leprogramme.
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 35
36/41
A propos des données A propos du Web Bilan
Comment accéder à une page Web dynamique ?
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 36
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 seconnecter et interroger un SGBDAlors il devient possible d’afficher/manipuler les données du SGBDvia une page Web dynamique.
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 37
38/41
A propos des données A propos du Web Bilan
Comment accéder à une base de données via le Web ?
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 38
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 accessibledans un navigateur WebManipuler des données d’une base via des librairies
Concrètement, vous allez construire un contenu Web à partir dedonnées stockées dans un SGBD.
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 39
40/41
Partie 1 : Introduction & motivations
1 A propos des donnéesDe la donnée à la Base de DonnéesSystème de Gestion de Bases de Données
2 A propos du WebDe la page Web statique à la page Web dynamiqueAccès à un SGBD via une page Web dynamique
3 Bilan
41/41
A propos des données A propos du Web Bilan
Finalement, DBW1 ça parle de ...
Données et de WebComment concevoir une base de données dans un SGBDComment manipuler/interroger les données dans un SGBDComment publier les données d’un SGBD sur le Web
UCBL - Dept. Info. - Nicolas Lumineau BDW1 : BD & Prog. Web 41