Les Systèmes de Gestion de Bases de Données (SGBD) sont des logiciels complexes qui offrent un ensemble complet et cohérent d’outil de gestion de données: un langage de manipulation et d’interrogation (SQL par exemple), un gestionnaire de stockage sur disque, un gestionnaire de concurrence d’accès, des interfaces de programmation et d’administration, etc.
Le cours propose d’aller ”sous le capot” des systèmes relationnels pour étudier comment ils fonctionnent et réussissent le tour de force de proposer des accès sécurisés à des centaines d’utilisateurs en parallèle, tout en obtenant des temps de réponses impressionnants même pour des bases très volumineuses. Le contenu correspond typiquement à un cours universitaire de deuxième cycle en informatique. Il couvre les connaissances indispensables à tout informaticien de niveau ingénieur amené à mettre en place des applications professionnelles s’appuyant sur une base de données (soit une classe d’application extrêmement courante).
Le cours comprend trois parties consacrées successivement au stockage et aux structures de données, au méthodes et algorithmes d’optimisation, et enfin aux transactions et à la reprise sur panne.
a) Rappels de fonctionnement du SGBD Relationnel
b) Stockage
c) Structures d'index: l'arbre B
d) Structures d'index: le hachage
e) Opérateurs d'évaluation des requêtes
f) Optimisation de requêtes: plans d'exécutions, outils EXPLAIN
g) Transactions
h) Concurrence d'accès
g) Reprise sur panne
TP d'optimisation sur Postgres
En faisant varier la base, et en utilisant l'outil EXPLAIN, on observe le choix de l'optimiseur du SGBD des stratégies d'optimisation de nombreuses requêtes SQL variées. Ce TP demande une bonne connaissance de SQL. Ce TP est proposé en ligne.
TP concurrence d'accès
Ces travaux pratiques consistent à expérimenter le comportement d'un système transactionnel conforme à la norme SQL. Des simulations dan des scénarios variés amènent à comprendre les différents niveaux d'isolation et les propriétés ACID de ces systèmes. Ce TP est proposé en ligne.
Examen final: Examen final portant sur l'ensemble des connaissances et des savoirs de l'enseignement