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.
Bases de données
Responsable: Pierre Senellart
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.
- Introduction à la gestion de données, le modèle relationnel, l'algèbre relationnelle, SQL
- Aspects logiques : calcul relationnel, indépendance du domaine, théorème de Codd
- Récursion, Datalog, langages à point fixe, logique du second-ordre
- Complexité computationnelle des langages de requêtes
- Contraintes sur les données : dépendances fonctionnelles, dépendances d'inclusion, poursuite
- Conception de schémas, normalisation
- Analyse statique : minimisation de requêtes, requêtes acycliques, réécriture de requêtes
- Vues virtuelles et vues matérialisées, maintenance de vues, mises à jour de vues, intégration de données
- Optimisation de requêtes : génération de plans, modèles de coût, histogrammes
- Indexation et stockage
- Transactions et gestion de concurrence : sérialisabilité, verrlage à deux phases, estampillage
- Extensions et applications : distribution, modèles non relationnels, applications Web et sécurité
- La validation du cours se fera en partie par contrôle continu, et en partie via un examen final.
Bibliographie :
- M. Benedikt et P. Senellart, « Databases ». E. K. Blum et A. V. Aho, éditeurs, Computer Science. The Hardware, Software and Heart of It, p. 169‑229. Springer-Verlag, 2012. http://pierre.senellart.com/publications/benedikt2012databases.pdf
- S. Abiteboul, R. Hull et V. Vianu, Foundations of Databases. Addison-Wesley, 1995. http://webdam.inria.fr/Alice/
- H. Garcia-Molina, J. Ullman, J. Widom, Database Systems: The Complete Book. Pearson, 2008.