Bases de données & SQL · L2 · Section 11/11
Ressources
Progression
#Ressources : Bases de données et SQL
#Cours, TD et TP UCA
- Syllabus officiel SPUF302 : modèle relationnel, entité-association, algèbre relationnelle, SQL, normalisation et contrôle de concurrence.
- Le fonds local du semestre 3 comprend neuf cours magistraux, dix TD, cinq TP, leurs corrections, des séances de révision et des annales. La progression suit exactement ce module : création d'un schéma relationnel, algèbre relationnelle, consultation SQL, définition de schémas, modélisation entité-association, passage au relationnel, normalisation, puis sérialisabilité des transactions.
#Inventaire détaillé des documents du cours
Cours magistraux. Cours 1 : objectifs, base de données et SGBD, historique et terminologie du modèle relationnel. Cours 2 : introduction à MySQL et phpMyAdmin, types d'attributs, InnoDB, intégrité référentielle et actions ON UPDATE/ON DELETE, résumé du modèle relationnel. Cours 3 : algèbre relationnelle — opérateurs unaires, ensemblistes, jointures, division. Cours 5 et 6 : le langage SQL (partie I : format des requêtes, conditions de recherche, fonctions d'agrégat ; partie II : définition et modification de schémas). Cours 8 : gestion des transactions et contrôle de concurrence. Cours 9 : passage du modèle E-A au relationnel et normalisation.
Travaux dirigés et pratiques. TD 1 et TP 1 : création de bases relationnelles avec phpMyAdmin, schéma Etudiant/UE, puis bibliothèque de DVD. TD 2 : conception de schémas (chantiers, cinémas). TD 3 et sa correction : utilisation du langage algébrique, base MICRO et base des transports. TD 4 : élections cantonales. TD 5 et sa correction : consultation des données en SQL, avec requêtes d'agrégation. TD 6 et TP 3 : création de schémas et modification de données et de structure en SQL. TD 7, TP 4 et leur correction : modélisation Google Calendar (sept tables) et requêtes de consultation. TD 8 et sa correction : diagramme UML. TD 9 et sa correction : transformation E-A vers le relationnel et normalisation. TD 10 et sa correction : contrôle de concurrence, graphes de précédence et graphes d'attente. TP 5 : contrôle continu n°2 de 2013 (CarTrack et Armazon).
Annales et révisions. CC d'octobre 2015 (compagnie maritime, algèbre relationnelle), CC de novembre 2020 (base d'hôtels), CC d'avril 2012 (Apple Store), extraits du contrôle terminal de décembre 2016 (verrouillage en deux phases, ordre des clauses, base Zoo, graphe d'attente, médiathèque), et une session de révision qui reprend les exercices de normalisation et de concurrence. Ces documents sont la source des exercices de la page Annales corrigées.
#Références en ligne
- SQLite, syntaxe de référence : moteur du playground intégré au module, documentation complète et précise.
- SQLite, optimisation des requêtes : le document officiel sur le query planner, à lire après la section Index.
- PostgreSQL, documentation : complément sur les transactions, l'isolation (chapitre Concurrency Control) et EXPLAIN.
- MySQL 8.4 Reference Manual : SGBDR utilisé dans les TP UCA.
- SQLBolt : exercices progressifs de syntaxe SQL, du SELECT simple aux sous-requêtes.
- Use The Index, Luke : le guide de référence sur l'indexation et les plans d'exécution, gratuit en ligne.
#Outils à installer chez vous
sqlite3en ligne de commande : présent dans les dépôts de toutes les distributions ;.mode column,.headers onet.explain onrendent l'exploration confortable.- DBeaver ou Beekeeper Studio : clients graphiques multi-SGBD pour explorer schémas et données.
- DB Fiddle ou SQLite Online : bancs d'essai SQL dans le navigateur, utiles pour partager une requête avec son schéma.
#Bonnes pratiques à emporter
- Écrire le modèle et les cardinalités avant la première requête.
- Préférer les requêtes paramétrées (jamais de concaténation de chaînes) et nommer explicitement les colonnes utiles.
- Vérifier les dépendances fonctionnelles avant de normaliser.
- Mesurer avec
EXPLAIN QUERY PLANavant d'ajouter un index, et re-mesurer après. - Entraînement conseillé : refaire les TD 3 à 10, puis une annale en temps limité. La page Annales corrigées de ce module rassemble les sujets réellement posés avec leurs corrections détaillées.