École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Unité d’enseignement : Master GL · S1 · UE4 — Bases de données avancées

  • Bases de données avancées

    Ce cours de spécialité approfondit la conception, la programmation et l’exploitation des systèmes de gestion de bases de données (SGBD) relationnels et non relationnels. Au-delà du SQL de base vu en licence, il prépare l’ingénieur logiciel à concevoir des schémas robustes, à programmer la logique métier côté serveur, à garantir la cohérence des données sous forte concurrence (paiements mobile money, inscriptions en ligne, guichets bancaires) et à optimiser des bases de plusieurs millions de lignes. Les exemples s’appuient sur des systèmes réalistes au Niger : gestion scolaire d’un établissement de Niamey, plateforme de paiement mobile, e-gouvernement. Les travaux pratiques utilisent PostgreSQL (logiciel libre), les notions étant transposables à Oracle, SQL Server ou MySQL.

    Objectifs d’apprentissage

    • Analyser un schéma relationnel à l’aide des dépendances fonctionnelles et le normaliser jusqu’à la FNBC en justifiant les compromis.
    • Écrire des requêtes SQL avancées : jointures externes, sous-requêtes corrélées, CTE récursives, fonctions de fenêtrage.
    • Programmer la logique côté serveur : fonctions et procédures stockées PL/pgSQL, déclencheurs, vues et gestion des droits.
    • Expliquer et maîtriser les transactions (ACID), les niveaux d’isolation, le verrouillage, le MVCC et la reprise après panne.
    • Estimer le coût d’une requête, choisir des index pertinents et interpréter un plan d’exécution (EXPLAIN).
    • Situer les bases réparties et NoSQL (théorème CAP, réplication, partitionnement) et choisir une technologie adaptée à un besoin.

    Prérequis

    Modèle entité-association et modèle relationnel (Merise ou UML), algèbre relationnelle, SQL de base (SELECT, jointures, GROUP BY), notions de programmation procédurale et de systèmes d’exploitation.

    Plan du cours

    1. Leçon 1 — Conception relationnelle avancée : dépendances fonctionnelles, normalisation et SQL analytique
    2. Leçon 2 — Programmation côté serveur : PL/pgSQL, procédures stockées, déclencheurs et sécurité d’accès
    3. Leçon 3 — Transactions, contrôle de concurrence et reprise après panne
    4. Leçon 4 — Indexation, optimisation des requêtes, bases réparties et NoSQL

    Modalités d’évaluation

    Volume horaire : 20 h de cours magistral, 20 h de travaux dirigés, 20 h de travaux pratiques (60 h en présentiel) et 60 h de travail personnel de l’étudiant (TPE), soit 120 h pour 6 crédits. Évaluation : contrôle continu (TD notés, comptes rendus de TP guidés, mini-projet de base de données pour une application de gestion scolaire) et examen terminal écrit (conception, SQL, transactions, optimisation).

    Bibliographie

    • Ramez Elmasri, Shamkant B. Navathe, Fundamentals of Database Systems, Pearson.
    • Abraham Silberschatz, Henry F. Korth, S. Sudarshan, Database System Concepts, McGraw-Hill.
    • Georges Gardarin, Bases de données, Eyrolles.
    • Martin Kleppmann, Designing Data-Intensive Applications, O’Reilly Media.
    • Documentation officielle PostgreSQL (postgresql.org/docs) et norme ISO/IEC 9075 (SQL).