Aller au contenu principal
- Pourquoi le modèle relationnel : base de données et SGBD, LDD et LMD, ce qu'un SGBD doit assurer, Codd (1970), histoire de SQL de SEQUEL (1974) à SQL:2016.
- Modélisation : relation, attribut, domaine, tuple, degré, cardinalité, schéma et instance ; clé candidate, clé primaire, clé étrangère ; les sept propriétés d'une relation ; intégrité d'entité et intégrité référentielle ;
CASCADE, SET NULL, SET DEFAULT, NO ACTION.
- Passage du modèle E-A au relationnel : les trois règles, le tableau de décision par cardinalité, les associations porteuses d'attributs.
- Algèbre relationnelle : langage procédural, fermeture, les cinq opérations fondamentales (sélection, projection, produit cartésien, union, différence) ; compatibilité envers l'union ; jointure thêta, équijointure, jointure naturelle, jointures externes, semi-jointure ; division et sa formule en trois étapes ; règles de réécriture.
- SELECT : ordre logique d'évaluation (
FROM → WHERE → GROUP BY → HAVING → sous-requête → SELECT → ORDER BY → LIMIT) ; les cinq familles de conditions de recherche ; NULL et les agrégats ; SARGability ; pagination par curseur.
- JOIN : INNER, LEFT, RIGHT, FULL ; semi et anti-jointures ; les définitions algébriques correspondantes ; cardinalités attendues ; piège du prédicat de la table droite dans
WHERE contre ON ; CTE.
- Agrégations :
GROUP BY et HAVING ; pourquoi un agrégat ne peut pas vivre dans WHERE ; NULL et agrégats ; fonctions de fenêtre (rank, row_number, cumuls, moyennes mobiles) ; ROLLUP et CUBE.
- Le jeu de données officiel du cours :
Etudiant, UE, EtudiantUE, Adresse, Enseignant, avec ses tuples et ses clés.
- Normalisation : dépendance fonctionnelle et dépendance fonctionnelle complète ; 1NF, 2NF, 3NF et BCNF dans leurs définitions officielles ; dépendance partielle contre dépendance transitive ; anomalies d'insertion, de mise à jour et de suppression ; décomposition sans perte et préservation des DF.
- Index : B-Tree, moteurs InnoDB et MyISAM, SARGability, index composites (égalité, plage, tri), index couvrants, index sur clé étrangère, quand ne pas indexer.
- Plans d'exécution : lire
EXPLAIN QUERY PLAN, vocabulaire des nœuds, estimation de cardinalité, session avant/index/après.
- Transactions : ACID (Haerder et Reuter, 1983), validation et avortement, journalisation.
- Contrôle de concurrence : mise à jour perdue, dépendance non validée, analyse incohérente ; planification, planification sérielle, non sérielle, sérialisable ; sérialisation des conflits.
- Graphe de précédence : les trois règles de construction, le théorème du cycle, planification sérielle équivalente.
- Verrouillage : verrous partagés et exclusifs, table de compatibilité, verrouillage en deux phases (V2P) ; estampillage et méthodes optimistes.
- Interblocage : graphe des attentes, théorème de Holt (1972), choix de la victime, famine.
- Niveaux d'isolation : lecture sale, lecture non répétable, fantômes, write-skew ; MVCC ; transactions courtes, reprises bornées, idempotence.
- Annales corrigées : CC 2015 (compagnie maritime), CC 2020 (hôtels), CC 2012 (Apple Store), CC 2013 (CarTrack et Armazon), CT 2016 (Zoo, graphe d'attente, questions de cours), TD 9 et TD 10.
- Synthèse : démarche complète, du schéma à la requête mesurée ; ce que les épreuves testent et dans quel ordre de fréquence.