Bases de données

Responsable: Pierre Senellart

Ce cours couvre les grands principes des systèmes de gestion de données (SGBD). Les SGBD sont des logiciels génériques permettant le stockage et la manipulation efficace de données pour une très large gamme d'applications. Du point de vue pratique, les SGBD sont des logiciels sophistiqués, très largement utilisés, omniprésents dans le monde industriel. Du point de vue théorique, la conception de ces systèmes repose sur des fondements conceptuels, logiques, algorithmiques, en lien avec d'autres domaines de la science informatique. Le cours ira des aspects théoriques aux aspects systèmes des SGBD, en particulier ceux basés sur le modèle relationnel.

Les thèmes suivants seront couverts dans les 12 sessions du cours, qui seront accompagnées de travaux dirigés et de travaux pratiques sur ces mêmes sujets.

  1. Introduction à la gestion de données, le modèle relationnel, l'algèbre relationnelle, SQL
  2. Aspects logiques : calcul relationnel, indépendance du domaine, théorème de Codd
  3. Récursion, Datalog, langages à point fixe, logique du second-ordre
  4. Complexité computationnelle des langages de requêtes
  5. Contraintes sur les données : dépendances fonctionnelles, dépendances d'inclusion, poursuite
  6. Conception de schémas, normalisation
  7. Analyse statique : minimisation de requêtes, requêtes acycliques, réécriture de requêtes
  8. Vues virtuelles et vues matérialisées, maintenance de vues, mises à jour de vues, intégration de données
  9. Optimisation de requêtes : génération de plans, modèles de coût, histogrammes
  10. Indexation et stockage
  11. Transactions et gestion de concurrence : sérialisabilité, verrlage à deux phases, estampillage
  12. Extensions et applications : distribution, modèles non relationnels, applications Web et sécurité
  13. La validation du cours se fera en partie par contrôle continu, et en partie via un examen final.
Bibliographie :