Introduction aux bases de donn£© 2019-05-12¢  Introduction aux bases de donn£©es P.PISZYNA ¢â‚¬â€œ CPGE

  • View
    0

  • Download
    0

Embed Size (px)

Text of Introduction aux bases de donn£© 2019-05-12¢  Introduction aux bases de...

  • Introduction aux bases de données

    P.PISZYNA – CPGE TSI – Mai 2019

    Source des exemples : https://info-llg.fr/commun-mpsi/pdf/12.bdd.pdf

  • Sommaire

    • Les bases de données : pourquoi faire ? • Les termes à connaître • Le modèle relationnel • La modélisation • Les outils logiciels • L’accès aux données

  • Les bases de données : pourquoi faire ?

    Exemple disponible en ligne: http://www.semwebtech.org/sqlfrontend/

    Base de données « Mondial » contenant des données géopolitiques sur tous les pays du monde.

    Exemple de requête : Afficher la liste des pays dont la population est supérieure à 60M d’habitants

  • Les termes à connaître

    L’architecture trois-tiers :

  • Les termes à connaître

    § un SGDB est composé de bases de données § Une base de données est composée de tables § Chaque table est composée de champs

    SGBD

    BD

    tables

    BD BD

  • Les termes à connaître

    • Exemple avec une base de données appelée Mondial contenant 33 tables :

  • Les termes à connaître

    • Exemple avec la table appelée country: – Name, Code, Capital, etc. sont des champs

    Les termes à connaître

  • Les termes à connaître

    • Exemple avec la table appelée country: – Chaque ligne est un enregistrement

  • Les termes à connaître

    • Exemple avec la table appelée country: On voit que le champ code est une clé primaire : Elle permet d’identifier de façon unique un enregistrement – Les champs sont typés et de longueur limitée

    Les termes à connaître

  • Le modèle relationnel • Description de la relation entre les tables country et province :

    – A un pays correspondent une ou plusieurs provinces

    – A une province correspond un seul pays

    – Ce sont les cardinalités – Noter le champ country_Code – C’est une clé étrangère

  • La modélisation

    • Exercice : – Proposer un modèle conceptuel représentant un lycée qui contient : • Des sections (SN1, SN2…) • Des étudiants (Gérard MANVUSSA, Annie VERSAIRE…) • Des enseignants (Alain TERIEUR, Jean TALUS…) • Des cours (Info, Maths, Anglais…) • Des salles (E13, W12, X07…)

    • Correction : – Démo avec MySQL Workbench

  • Les outils logiciels § MODELISATION : MySQL Workbench…

    § SGBD : § ORACLE : gros systèmes (entreprises, administrations)

    § ACCESS : PC sous Windows (MS Office)

    § MySQL : PC sous Windows, MacOS, ou Linux (gratuit)

    et encore… SQL-Server, PostGreSQL, Interbase, sybase, DB2

  • L’accès aux données • Le langage SQL – Structure des requêtes :

    SELECT champ1, champ2 // Projection FROM table1 WHERE champ1 = « … » // Restriction ORDER BY champ2 ASC ; // Tri

    • Exercice : Donner la requête permettant de connaître la liste dans l’ordre alphabétique des pays dont la population est supérieure à 60 000 000 d’habitants

    • Correction : Démo avec la base « Mondial »

  • L’accès aux données • Le langage SQL – Structure des requêtes - Jointure :

    • Consiste à utiliser plusieurs tables pour faire une requête croisée • Exemple : la liste des pays appartenant au continent « Europe »

  • L’accès aux données

    • Le langage SQL – Structure des requêtes - Jointure :

    SELECT table1.champ1 // Projection FROM table1 JOIN table2 // Jointure ON table1.cléprimaire = table2.cléétrangère WHERE table2.champ2 = « … » // Restriction

    • Exercice : Donner la requête permettant de connaître la liste des pays appartenant au continent « Europe »

    • Correction : Démo avec la base « Mondial »

  • L’accès aux données

    • Le langage SQL – Quelques requêtes : C : Create -> INSERT R : Read -> SELECT U : Update -> UPDATE D : Delete -> DELETE

  • Fonctions d’agrégation

    On peut regrouper les résultats d’une requête pour effectuer une opération sur les groupes obtenus :

    SELECT e.continent , COUNT(*) FROM country c // Fonction statistique JOIN encompasses e ON c.code = e.country // Jointure GROUP BY e.continent // Agrégation

  • Fonctions d’agrégation

  • Fonctions d’agrégation

    • Le mot-clé HAVING permet de filtrer les résultats selon une condition :

    SELECT e.continent , SUM(c.population) // Fonction statistique FROM country c JOIN encompasses e ON c.code = e.country GROUP BY e.continent // Agrégation HAVING SUM(c.population) > 1000000000 // Condition

  • Sous-requêtes

    • On peut imbriquer une requête SELECT (encadrée par des parenthèses) dans un filtre WHERE ou HAVING :

    SELECT name FROM country WHERE population / area > (SELECT AVG(population / area) FROM country)

  • Algèbre relationnelle

    • Formulation théorique des requêtes • Indépendante du langage (abstraite) • Basée sur la théorie des ensemble • Propose un ensemble d’opérations formelles • Comparable à l’algorithmique en programmation

    • On parlera dans cette partie de relations notées Rn qui équivalent à des tables

  • Algèbre relationnelle

    • Opérations ensemblistes - l’union : • SELECT * FROM t1 UNION SELECT * FROM t2

    ⚠ Les tables doivent avoir le même schéma relationnel

  • Algèbre relationnelle

    • Opérations ensemblistes - l’intersection : • SELECT * FROM t1 INTERSECT SELECT * FROM t2

    ⚠ Les tables doivent avoir le même schéma relationnel

  • Algèbre relationnelle

    • Opérations ensemblistes – la différence : • SELECT * FROM t1 EXCEPT SELECT * FROM t2

    ⚠ Les tables doivent avoir le même schéma relationnel

  • Algèbre relationnelle

    • Opérations spécifiques – la projection : • SELECT DISTINCT A, B FROM t

  • Algèbre relationnelle

    • Opérations spécifiques – la sélection : • SELECT * FROM tWHERE E

    • E est une expression logique

  • Algèbre relationnelle

    • Opérations spécifiques – le renommage : • ALTER TABLE table RENAME COLUMN A TO D

    • Pas possible en SQLite

  • Algèbre relationnelle

    • Opérations spécifiques – la jointure : • SELECT * FROM table1 JOIN table2 ON E

    • E est une expression logique

  • Algèbre relationnelle

    • Opérations spécifiques – le produit cartésien : • SELECT * FROM table1, table2

  • Algèbre relationnelle

    • Opérations spécifiques – la division cartésienne : • Pas d’équivalent en langage SQL