[PDF] Cours base de données et développement web tout savoir | Cours Informatique

41  Download (1)

Texte intégral

(1)

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)

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)

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)

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)

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)

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)

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)

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)

9/41

A propos des données A propos du Web Bilan

Évolution du stockage des données

(10)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

30/41

Mais au fait... ! ? !

Pourquoi une UE où l’on mélange Bases de Données et WEB ?

(31)

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)

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)

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)

34/41

Comment accéder à une page Web statique ?

(35)

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)

36/41

Comment accéder à une page Web dynamique ?

(37)

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)

38/41

Comment accéder à une base de données via le Web ?

(39)

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)

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/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

Figure

Updating...

Références