1. Alternance
  2. NFE106 : Ingénierie et optimisation des bases de données (6 ECTS)

NFE106 : Ingénierie et optimisation des bases de données (6 ECTS)

Pré-requis

Licence informatique ou équivalent, maîtrise du modèle relationnel et bases en SQL et dans les systèmes informatiques

Objectifs

Comprendre et maitriser le fonctionnement d'un SGBD Relationnel pour devenir capable d'analyser les problèmes de performance et de cohérence et de proposer des solutions fondées. Un des principaux débouchés de la formation est une fonction d'administrateur de bases de données. Le contenu du cours permet de mieux appréhender le noyau du SGBD, l'optimisation des requêtes, la génération des statistiques, et le parallélisme des opérateurs indispensables pour obtenir de véritables gains de performances lors de l'utilisation de la base de données.

Au programme, nous mettons l'accent sur le stockage des données, les différentes techniques d'indexation qui sont la base de l'optimisation (comment bien choisir son index), les coûts des opérations de manipulation du SGBD (pour éviter de faire des requêtes couteuses), l'optimisation et la génération d'un plan d'exécution, la maitrise des outils de type EXPLAIN (comprendre ce que produit l'optimiseur), les différents SGBD existants sur le marché et leurs approches en terme d'optimisation avec Oracle, MySQL, SQL Server (Microsoft), DB2 (IBM), PostgreSQL, SQLite. Les techniques de concurrence d'accès et de reprise sur panne sont également présentées.

Afin de mieux appréhender ce cours, il est indispensable d'avoir déjà suivi un cours sur les fondements, l'interrogation et la conception de bases de données telles qu'ils sont abordés dans l'UE NFP107. Ce cours est donc une suite logique à NFP107 et va approfondir les bases acquises. La formation d'experts dans ce domaine est un des besoins reconnus de l'industrie dans le domaine de l'ingénierie des systèmes de gestion des bases de données et est une des composantes de nombreux métiers: Architecte de SGBD, Administrateur de Bases de données, Ingénieur en Systèmes de gestion de données, Gestionnaire d'entrepôts de données, Urbaniste, etc.

Mise en pratique. Cette maîtrise passe par la compréhension de techniques (optimisation de l'accès au support physique, algorithmique, stratégies d'optimisation) et leur mise en pratique sous forme de Travaux Pratiques avec le SGBD Oracle. Nous y étudierons l'extraction des informations nécessaires au DBA, l'exploitation de EXPLAIN, et l'optimisation de requêtes à travers des exemples typiques auxquels sont confrontés les DBA.

Contenu

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.

Modalités de validation

Examen final, sur papier.

Compétences visées

Maîtrise des aspects systèmes des SGBD relationnels: stockage, évaluation de requêtes, concurrence d'accès et reprise sur panne.