Skip to main content

Bases de Données Relationnelles et SQL

Introduction
Conventions
Author

Ludovic Deneuville

Bases de Données Relationnelles et SQL

  • 6h CM
  • 15h TP + 3h TD
  • ludovic.deneuville@ensai.fr
  • bureau 161
  • sur la base des cours de Benjamin Girault

Objectifs

  • Interrogation
  • Création
  • Modélisation
  • Savoir utiliser le langage SQL

Le plus important, savoir explorer une bdd pour en extraire des infos.

UML pour la modélisation

SQL

  • Syntaxe simple
  • Déclaratif
  • Efficace
  • Très utilisé
  • Compétence indispensable du Datascientist
  • ça s’encapsule dans plein de langages (R, Python, Julia, Stata, SAS…)
  • utile pour Big Data

Conventions

  • <...> : texte à remplacer
  • [...] : élément optionnel
  • Une requête se termine par un ;
  • -- Ce qui vient ensuite est commenté
  • Parfois possible d’utiliser /* commentaire */
  • ; : même si les logiciels souvent s’en moquent

Requêtes SQL jolies

  • Retour à la ligne
  • Mots clés alignés
  • Mots clés en MAJUSCULE
  • Mots clés en MAJUSCULE, reste en minuscules

pasbien.sql
SELECT c.nom AS club, AVG(j.elo) AS moyenne_elo FROM joueuse j INNER JOIN club c 
USING (id_club) WHERE mail IS NOT NULL GROUP BY c.nom HAVING AVG(j.elo) > 2000 ORDER BY 2 DESC;

Que fait cette requête ?

Voici ma réaction quand je vois ça !


bien.sql
SELECT c.nom AS club, 
       AVG(j.elo) AS moyenne_elo
  FROM joueuse j 
 INNER JOIN club c USING (id_club) 
 WHERE j.mail IS NOT NULL 
 GROUP BY c.nom
HAVING AVG(j.elo) > 2000
 ORDER BY 2 DESC;

Alors qu’ici tout le monde voit immédiatement ce que fait la requête.

Faites un effort pour vous même et pour vos relecteurs.

SQL : langage déclaratif (ne décrit pas des algorithmes, mais déclare un résultat attendu)

Le SQL ça ressemble à ça (1ere lecture de requête) :

  • Tableau de joueuse et de club
  • filtre pour garder si mail non NULL
  • Aggrégation par nom de club -> que l’on affiche

Les TP

5 TP + 1 TD

Rappel Datalab : Infra + logiciel Onyxia

  • BDD :
    • PostgreSQL : installé sur un serveur
    • DuckDB : embarqué, travaille en mémoire
  • CloudBeaver = une application web pour interagir facilement avec PostgreSQL
  • Sur les VM : DBeaver + une bdd chacun

Ce qu’il faut faire

  • Lire le sujet en avance
  • Lire attentivement les consignes
  • Essayer de résoudre par soi même
  • Chercher dans le cours / sur internet
  • Demander de l’aide à ses camarades
  • Demander de l’aide à l’enseignant
  • Les explications sont au dessus ou en dessous

ça peut paraitre un peu infentilisant mais c’est nécessaire de le rappeler !!!

si je demande un setup… faites le sinon ça risque de péter plus tard.

À ne pas faire

  • Copier l’énoncé sur une IAGen
  • Coller la réponse sans rien comprendre

Sauf si vous voulez ne rien retenir…

  • Je ne dis pas qu’il ne faut jamais utiliser les LLM
  • ça peut servir pour débgugger
  • ou pour des taches sans VA

Évaluation

  • Lundi 4 Janvier 10h
  • Durée : 2h
  • Sur papier
  • Sans documents (un aide-mémoire est fourni)
  • partie QCM
  • des requêtes SQL à écrire
  • pas de pièges
  • pour vérifier que vous retenez l’essentiel

Bibliographie

Au passage :

  • Importance de la biblio en projet, stage
  • Commencez toujours par explorer ce qui a été fait sur le sujet