bases de données relationnellesbliaudet.free.fr/img/pdf/sgbd_sql_intro_1_ppt.pdf · • le sgbd...

48
Bases de données relationnelles - 0 - Introduction - 1 - 1 - Généralités sur les BD 2 - Tables de type excel 3 - Généralités sur les SGBD 4 - Architecture des SGBD 5 - Installation d’un SGBD Introductions associées : Analyser les données d’un SI - Concevoir la BD Introduction au Web 1

Upload: others

Post on 29-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • Bases de donnéesrelationnelles

    -0 - Introduction - 1

    -1 - Généralités sur les BD 2 - Tables de type excel

    3 - Généralités sur les SGBD 4 - Architecture des SGBD 5 - Installation d’un SGBD

    Introductions associées : Analyser les données d’un SI - Concevoir la BD

    Introduction au Web

    1

  • Bases de données relationnelles

    1 - Généralités sur les BD- BD en général

    - BD informatisée

    2

  • 3

    • La BD est un système qui permet de manipuler de façon plus aisée des objets et / ou des informations en grand nombre.

    • Une BD est constituée de deux éléments :

    • La BD à proprement parler : un regroupement de données (d’informations) en grand nombre. Ces données décrivent (représentent) des objets qu’on veut manipuler. Ca peut être des livres dans une bibliothèques, des clients ou des commandes dans un magasin.

    • Le SGBD (système de gestion de la base de données) : c’est un ensemble d’outils de gestion pour ranger et utiliser les objets qu’on veut manipuler. Ces outils permettent donc de : ajouter, retirer et modifier ces objets et les données qui les représentent (partie rangement) mais aussi de les consulter (et donc de les trouver !) et de les traiter (faire des calculs dessus).

    • Dans le langage courant, on mélange parfois les deux termes.

    Base de données en général,pas informatisée

  • • Exemple : • Une bibliothèque : des fichiers d’adhérents et de livres, des

    index (fichiers pour les recherches).

    4Meuble de classement par fiche - Fichiers

    Tiroirs avec des fiches

    Base de données en général,pas informatisée

  • • Exemples• Les sociétés d’assurances et les banques. Cf. les films : la Foule

    (King Vidor, 1928), la Garçonnière (Billy Wilder, 1960) et aussi Brasil (Terry Gillian, 1985, avec en plus utilisation de tubes pneumatiques)

    5

    Système de gestion de fichiers non informatisé !

    Base de données en général,pas informatisée

    https://fr.wikipedia.org/wiki/Tube_pneumatique

  • 6

    Système de communication non informatisé

    • Un tube pneumatique est un système propulsant par différence de pression des navettes cylindriques, lesquelles servent à transporter des objets ou des messages.

    • Existe au 19ème siècle et jusque dans les années 80 du 20ème siècle. Plus de 400 km de réseau à Paris en 1930.

    • Existe toujours à petite échelle au début du 21ème siècle pour transporter de petits paquets, des documents, de l’argent dans les banques, les hypermarchés et certaines grandes administrations.

    • https://fr.wikipedia.org/wiki/Tube_pneumatique

    • Remarque : la circulation de l’information

    Base de données en général,pas informatisée

    https://fr.wikipedia.org/wiki/Tube_pneumatiquehttps://fr.wikipedia.org/wiki/Tube_pneumatique

  • • Exemple : • Un cerveau : on a des informations dans notre cerveau et des méthodes

    pour les manipuler. On les retrouve plus ou moins facilement…

    7Cartographie des zones du langage écrit et des zones du langage verbal

    dans le cerveau

    Base de données en général,pas informatisée

  • 8

    • Dans ce cours, vous allez apprendre à utiliser des BD informatisées.

    • Aujourd’hui, quasiment toutes les applications sont connectées à une BD : savoir utiliser une BD est donc très utile.

    • Pour utiliser une base de données, il faut savoir : • Comment les données sont organisées. • Quels sont les principes généraux pour manipuler les données.

    • Dans les années 70, on a défini une façon de stocker pour faire en sorte qu’il y ait le moins d’erreurs possibles dans nos données et qu’on puisse les utiliser facilement. Cette façon de faire a un qualificatif : « relationnelle ». Cela consiste à organiser les données dans des tables de type excel. La façon dont les données sont organisées concerne la « modélisation » des bases de données. On apprendra les bases de la modélisation.

    • Pour manipuler les données, il faudra utiliser un programme appeler SGBD : système de gestion de bases de données. Le langage permettant de communiquer avec un SGBD s’appelle le « SQL ». C’est avant tout une histoire de pratique. On apprendra à utiliser un SGBD et le SQL.

    Base de données informatisée

  • 9

    • Exemples :

    • Une bibliothèque : les adhérents et le catalogues sont gérés par informatique. Le retrait et le retour des livres est géré via une machine qui scanne les codes-barres des livres. Les informations (livres disponibles, livres actuellement empruntés par l’adhérents, etc.) sont accessibles sur des terminaux dans la bibliothèque et sur internet.

    • Les banques et les assurances

    • Le système de réservation de la SNCF : il permet d’accéder à tous les trains et à toutes les places dans les trains, de savoir si elles sont disponibles, etc.

    • Les sites internet de journaux (Le Monde, le Figaro, etc.) : les articles et les commentaires utilisent des bases de données.

    • Les sites web en général et les applications mobiles utilisent des bases de données.

    • Un disque dur : on a des données, on peut les trouver assez facilement. Les outils de recherche et de consultation des OS permettent de retrouver l’information plus ou moins facilement.

    Base de données informatisée

  • Bases de données relationnelles

    2 - Tables de type excel- Bien comprendre la table excel

    10

  • 11

    • La BD est constituée de sortes de tables Excel.

    • Par exemple: un table d’employés. Chaque employé a un nom, une fonction, une date d’embauche, un salaire, une commission (part de salaire variable). Un employé est identifié par un numéro appelé NE. Un employé travaille dans un département qui a un numéro.

    Bien comprendre la table excel

    Table des employés :

  • 12

    • Dans la table, il faut distinguer entre la première ligne qui définit les caractéristiques de chaque médecin et les lignes suivantes qui définissent les médecins un par un.

    • La première ligne est une description abstraite d’un médecin.

    • Les lignes suivantes sont les descriptions concrètes de chaque médecin, un par un.

    Bien comprendre la table excel :distinction entre abstrait et concret

  • 13

    • Une table est un ensemble regroupant des individus, sans ordre particulier.

    • La première ligne de la table correspond à sa description générale, sa définition.

    • Chaque ligne suivante dans la table est un individu.

    • Chaque colonne de la première ligne est une propriété de la table qu’on appelle “attribut”.

    • Chaque colonne des lignes suivantes est une donnée.

    Bien comprendre la table excel :nommer les différents composants d’une table

  • 14

    • La relation entre un individu et sa table est une relation « est 1 ».

    • Par exemple : M. Mongéné « est 1 » médecin. Mme Maderma « est 1 » médecin.

    • Pour chaque ligne de la table, on peut dire : cette ligne « est 1 » Médecin.

    Bien comprendre la table excel :relation entre un individu et sa table :« est 1 »

  • 15

    • La relation entre un individu et un attribut est obligatoirement une relation « a 1 ». • Un médecin « a 1 » type • Un médecin « a 1 » nom • etc.

    • C’est vrai aussi pour chaque individu concret : • Le docteur Mongéné « a 1 » adresse • Le docteur Maderma de la rue Chose « a 1 » spécialité • etc.

    Bien comprendre la table excel :relation entre un individu et ses attributs : « a 1 »

  • 16

    • On voit une valeur spéciale : la valeur NULL, qui veut dire que l’information n’est pas renseignée. • NULL est le seul code spécial qu’on autorise dans les bases de données. • Un attribut qui ne peut pas avoir de valeur NULL est dit « obligatoire » (ou « NOT NULL » ). • Une bonne pratique de modélisation consiste à bien identifier les attributs qui ne sont pas

    obligatoires (car ils sont moins nombreux). Les autres seront donc obligatoires.

    Bien comprendre la table excel :valeur NULL et attribut obligatoire

  • 17

    • Dans la table ci-dessous, on a 2 Madame Maderma : en 2 et en 4. • Si les deux Mme Maderma avaient les mêmes informations (c’est peu probable, mais

    ça peut arriver dans des tables plus simples) comment ferait-on pour les distinguer ? • Pour résoudre ce problème, il suffit d’ajouter un attribut identifiant ou « id » . Cet attribut

    associe un numéro unique à chaque individu. Ainsi il n’y a pas de doublon possible. • Cet « id » on l’appelle « clé primaire ». Il y a une et une seule clé primaire dans une

    table. • Souvent la clé primaire correspond à un simple numéro qui sera donné

    automatiquement en augmentant de 1 la valeur du dernier id entré. On peut aussi avoir un attribut « métier » qui sert d’identifiant. Par exemple, le NE de nos employés.

    • On place la clé primaire en premier dans la liste des attributs pour faciliter la lecture.

    Bien comprendre la table excel :notion de clé primaire

  • 18

    • Une clé d’usage, est un attribut qui sert d’identifiant quand on parle entre nous et pas avec une machine !

    • A l’usage, on ne parle pas du 5, du 6 ou du 10, mais plutôt des docteurs Hamou, Mongéné ou Maderma. Dans le cas des médecins, c’est le nom qui sert de clé d’usage. Mais ce n’est pas vraiment un identifiant puisqu’il peut y avoir des doublons. Ici, il y a deux Docteur Mongéné : l’identifiant d’usage ne suffit pas à identifier l’individu : c’est bien la clé primaire qui joue ce rôle.

    • Souvent, la clé d’usage est un attribut qui s’appelle « nom ». Dans certains cas, la clé d’usage est plus difficile à identifier et c’est ce qui la rend utile.

    • On place la clé d’usage immédiatement après la clé primaire pour rendre la table plus facile à lire.

    Bien comprendre la table excel :notion de clé d’usage

  • 19

    • La BD est constituée de sortes de tableaux Excel. • Par exemple: des Employés et des Départements.

    Certaines colonnes permettent de passer d’une ligne à une autre ligne à une autre :

    • le ND des Employés permet de passer au ND des Départements.

    • le NEchef des Employés permet de passer à une autre ligne dans la table des Employés.

    Table des Employés Table des Départements

    Bien comprendre la table excel :relation entre les tables

  • Bases de données relationnelles

    3 - Généralités sur les SGBD- Principaux services d’un SGBD

    - Principaux SGBD-R - Le SQL

    Exemples de code

    20

  • 21

    • Comment créer une table de type excel, par exemple la table des employés, dans une BD ? Comment modifier cette table après coup, ou la supprimer ?

    • Comment ajouter un employé, le modifier, le supprimer ?

    • Comment questionner ma table. Par exemple avoir la liste des employés dont la fonction est « salesman ». Ou encore avoir la moyenne des salaires des employés.

    • Le SGBD, Système de Gestion de Base de Données, est le logiciel qui fournit les outils de gestion de la BD.

    • Il permet essentiellement de :

    • Créer, modifier, supprimer les tables qu’on veut manipuler

    • Ajouter, modifier, supprimer des données

    • Consulter des données

    • Faire des traitements sur les données

    Principaux services d’un SGBG

  • 22

    • Les principaux SGBD-R sont : ✴ ORACLE (oracle) ✴ MySQL (oracle) ✴ SQL-Server (microsoft) ✴ PostgreSQL (open source) ✴ etc.

    Principaux SGBD-R

    • On s’intéresse aux SGBD-R : SGBD relationnel.

    • Relationnel est un adjectif qui caractérise une façon d’organiser et de stocker les données pour faire en sorte qu’il y ait le moins d’erreurs possibles dans nos données et qu’on puisse les utiliser facilement. Cette technique est basée sur une théorie mathématique : l’algèbre relationnelle.

  • Le langage SQL - 1

    • Tous les SGBD-R utilise le même langage pour réaliser les opérations qu’on a déjà vues : le SQL.

    • SQL signifie Structured Query Langage, c’est-à-dire langage structuré de requêtes.

    • Le SQL est LE langage des SGBD-R.

    • Il permet d’envoyer toutes les requêtes possibles à un SGDB-R : création, modification, suppression, consultation, traitement, etc.

    • Le SQL est un langage de programmation fondé sur une théorie mathématique : l’algèbre relationnelle.

    23

  • Le langage SQL - 2

    • Query = requête. Le SQL est un langages de requêtes.

    • Une requête est une opération élémentaire : créer, modifier, supprimer, consulter, traiter, etc.

    • Le SQL est un langage de programmation très différents des langages comme C, Java, Python, PHP, JavaScript.

    • Le SQL permet de : • Gérer les tables • Gérer les utilisateurs

    24

  • Le langage SQL - 3

    • Gérer les tables de type excel :

    • Le DDL (data définition language) regroupe les requêtes permettant de créer, de modifier, de supprimer une table.

    • Les 3 requêtes du DDL sont : • Create table• Alter table• Drop table

    • Le DML (data manipulation language) regroupe les requêtes permettant d’insérer, de modifier, de supprimer une ligne dans une table.

    • Les 3 requêtes du DML sont : • Insert into• Update• Delete from

    • Le SELECT est la requête qui permet de consulter les données et de faire des calculs sur les données.

    25

  • Le langage SQL - 4

    • Gérer les utilisateurs :

    • Le DCL (data control language) regroupe les requêtes permettant de créer, de modifier, de supprimer des utilisateurs et de leur donner des droits

    • Les 3 requêtes du DCL pour gérer les utilisateurs sont : • Create user• Alter user• Drop user

    • Les 2 requêtes du DCL pour gérer les droits des utilisateurs sont :

    • Grant : pour donner des droits • Revoke : pour supprimer des droits

    26

  • Le langage SQL - 5

    • Regrouper les tables de la base de données d’une application

    • Les tables qu’on va créer pour une application particulière sont regroupées dans un dossier qu’on appelle « base de données » ou « BD ».

    ➡ En général, on a une BD par application.

    ➡ Une BD contient plusieurs tables de type excel.

    ➡ Un SGBD peut gérer plusieurs BDs correspondant à plusieurs applications différentes.

    • Des requêtes permettent de créer la BD. Ce sont des requêtes du DDL. • Les 3 requêtes du DDL pour créer une BD sont :

    • Create database• Alter database• Drop database

    27

  • 28

    • On va créer une BD, une table et des tuples pour la table des employés qu’on a déjà présentée et qui est ci-dessous.

    Table des employés :

    Exemple de code SQLCréation d’une BD et d’une table

  • Exemple de code SQLCréation d’une BD et d’une table

    29

    • On crée une BD qui s’appelle : employesTP01• Les commandes drop database et create database sont simples à

    comprendre. Il suffit de lire le code.

    • On crée une table qui s’appelle : EMP• La commande create table est simple à comprendre. Il suffit de lire le code.

  • Exemple de code SQLCréation des individus dans une table

    30

    • On ajoute des lignes (on dit aussi « tuples ») dans la table EMP• La commande insert into est simple à comprendre. Il suffit de

    lire le code.

  • Exemple de code SQLConsultation d’une table

    31

  • Exemple de code SQLTri et moyenne

    32

  • Exemple de code SQLRésultats détaillées

    33

    • Tous les employés : SELECT *FROM emp

  • Exemple de code SQLRésultats détaillées

    34

    • Tous les employés manager avec tous leurs attributs: SELECT *FROM empWHERE fonction = ‘manager';

    • Tous les employés manager avec leur numéros, noms, fonctions et salaires:SELECT ne, nom, fonction, salFROM empWHERE fonction = ‘manager';

  • Exemple de code SQLRésultats détaillées

    35

    • Tous les employés manager triés par salaire décroissants :SELECT *FROM empWHERE fonction = 'manager'ORDER BY SAL DESC;

    • Salaire moyen des employésSELECT avg(sal)FROM emp ;

  • Conclusion

    36

    • On vient de présenter le COEUR du fonctionnement d’un SGBD

    • Il restera à :

    • Détailler les possibilités d’un SELECT sur une seule table

    • Montrer l’utilisation d’un SELECT sur plusieurs tables

    • Préciser les usages du DDL, DML et DCL

    • Des requêtes permettent de créer la BD. Ce sont des requêtes du DDL. • Les 3 requêtes du DDL pour créer une BD sont :

    • Create database• Alter database• Drop database

  • Exercices «papier »

    37

    • METHODE : pour faire cet exercice, regardez les slides 31 et 32 (« consultation d’une table » et « tri et moyenne ») et trouvez les solutions par analogie.

    • Il faut répondre sur papier (on ne code pas encore).

    • Ecrivez les requêtes avec un SELECT permettant de répondre aux questions suivantes :

    1 : Tous les employés du département 30 avec tous leurs attributs

    2 : Tous les employés du département 30 avec leur numéro, leur nom et le numéro du département triés par ordre alphabétique

    3 : Tous les managers du départements 20

    4 : Tous les managers des départements 20 ou 30

    5 : Salaire maximum des employés (la fonction pour avoir le maximum est : max())

    6 : Salaire minimum des managers

    7 : Nombre d'employés de la société (la fonction pour compter les lignes est count(*) )

    8 : Nombre de managers de la société.

  • Bases de données relationnelles

    4 - Architecture des SGBD1

    - Modèle client-serveur - Fonctionnement d’un site web

    38

  • SGBD - ArchitectureModèle Client - Serveur

    • Architecture et fonctionnement d’un ordinateur

    • Système d’exploitation

    • Disque dur, répertoires, fichiers

    • Processeur

    • RAM •

    39

  • • Modèle fondamental : architecture client serveur

    40

    • Le SGBD est le serveur. Chaque application est un client. Plusieurs clients peuvent communiquer avec le serveur.

    SGBD - ArchitectureModèle Client - Serveur

  • • Modèle fondamental : architecture client serveur

    • Une client est un programme qui envoie des commandes au serveur qu’on appelle le SGBD pour manipuler d’une façon ou d’une autre les données de la BD sur le disque dur.

    • Par exemple : un site WEB enregistre une donnée dans la BD ou récupère des informations dans la BD.

    • Pour une BD, il y a un SGBD et un seul.

    • Le SGBD peut gérer plusieurs BDs.

    41

    SGBD - ArchitectureModèle Client - Serveur

  • • Qu’est-ce qu’un serveur ?

    • Un serveur est un programme qui n’a pas de communication directe avec un utilisateur humain.

    • Un serveur est un programme qui communique uniquement avec d’autres programme. Il est en attente (il écoute avec un « listener ») de messages qui lui sont envoyés par d’autres programme. Il réponde aux messages qu’il a reçu : il « sert » ses « clients ».

    • Par abus de langage, la machine qui héberge le programme serveur (et le fait fonctionner) est appelée serveur. On peut aussi parler de machine-serveur hébergeant un ou plusieurs serveurs.

    42

    SGBD - ArchitectureModèle Client - Serveur

  • • 2 types de clients

    • Un client peut être une application avec une interface utilisateur : par exemple un navigateur utilisant une application web.

    • Un client peut être un serveur S1 qui communique avec un autre serveur S2. Dans il existe par exemple un client avec une interface utilisateur qui communique avec le serveur S1. Par exemple : un serveur web communique avec un serveur de BD dans les applications web. Le serveur web est un serveur pour un client avec une interface utilisateur: le navigateur.

    43

    SGBD - ArchitectureModèle Client - Serveur

  • 44

    • Site Web avec 2 serveurs : • Comment on accède à la page « introduction web » à partir du site bliaudet.free.fr

    SGBD - ArchitectureModèle Client - Serveur

    http://bliaudet.free.fr

  • 45

    3 cas possibles : local, langage serveur, AJAX

    SGBD - ArchitectureFonctionnement d’un site Web

  • Bases de données relationnelles

    5 - Installation d’un SGBD-R1

    - Modèle client-serveur - Fonctionnement d’un site web

    46

  • • Quel SGBD-R ?• MySQL • ORACLE • SQL-Server • PostgreSQL • etc.

    ➡ On choisit MySQL

    • Installer et utiliser un SGBD-R, c’est :• Installer au moins 2 programmes :

    - le serveur auquel on enverra les requêtes - un client permettant de communiquer avec le serveur.

    • Démarrer le serveur • Démarrer le client

    • Pour installer MySQL, on a 3 options: • Installer un Service Windows ou Mac : MSI ou DMG (dans ce cas on installe aussi

    Workbench). • Installer des fichiers zip ou tar. • Installer un WAMP (sur PC), MAMP (sur MAC) ou équivalent

    ➡ On choisit WAMP ou équivalent➡ voir ici, option 3 : http://bliaudet.free.fr/article.php3?id_article=307

    47

    SGBD - ArchitectureModèle Client - Serveur

    http://bliaudet.free.fr/article.php3?id_article=307

  • Exercices

    48

    • Installer un MySQL

    • Démarrer le serveur et un client

    • Enregistrer la BD employesTP01 • Suivez le code des slides 29 et 30 « Création

    d’une BD et d’une table » et « Création des individus dans une table » : • le code est téléchargeable ici : BD employés

    • Tester les questions des slides 31 et 32. • Tester les question des exercices papier du slide.

    http://bliaudet.free.fr/IMG/txt/BD_EmployesTP01.sql