Dans le programme CPGE

Le programme officiel de CPGE est défini de la manière suivante, et “pèse” pour 15% de la première année, soit environ 6 semaines, découpé en 6 séances d'1h de cours (préférablement 3 séances de 2h) et 3 séances de 2h de TP. Nous indiquons dans le tableau suivant les sections qui décrivent chaque point du programme. Le programme encourage une approche applicative au thème des bases de données, ce qui est naturel, puisque les bases de données sont partout dans la vie de tous les jours. Néanmoins, il nous parait extrêmement réducteur de faire croire que les bases de données ne sont qu'un domaine d'application. Outre des exemples applicatifs, nous présentons ainsi une approche plus formelle et mathématique, qui nous parait parfaitement adaptée au niveau des élèves des classes préparatoires. Il serait en effet regrettable de faire croire que l'apprentissage fondamental des bases de données se limite à l'utilisation de ressources présentées par les sites grand public, même si ces sites sont de bonnes références techniques pour un utilisateur débutant, et permettent une mise en œuvre rapide de la pratique des bases de données sans passer par l'apprentissage et la compréhension de tous les concepts.

Contenus

Précisions et commentaires

Vocabulaire des bases de données : relation(2.2), attribut (2.2), domaine (2.2), schéma de relation (2.2) ; notion de clé primaire (4.1).

Ces concepts sont présentés dans une perspective applicative, à partir d'exemples.

Opérateurs usuels sur les ensembles dans un contexte de bases de données : union, intersection, différence. Opérateurs spécifiques de l'algèbre relationnelle : projection (3.2), sélection (ou restriction) (3.2), renommage (3.2), jointure (3.2), produit(3.2) et division cartésiennes (3.3) ; fonctions d'agrégation : min, max, somme, moyenne, comptage (4.4).

Ces concepts sont présentés dans une perspective applicative. Les seules jointures présentées seront les jointures symétriques, simples

(utilisant JOIN ...ON ...=...).

Concept de client-serveur (1.1). Brève extension au cas de l'architecture trois-tiers (1.1).

On se limite à présenter ce concept dans la perspective applicative d'utilisation de bases de données.

Le programme propose également les exercices suivants :

  • utiliser une application de création et de manipulation de données, offrant une interface graphique, notamment pour créer une base de données simple, ne comportant pas plus de trois tables ayant chacune un nombre limité de colonnes. L'installation et l'exploitation d'un serveur SQL ne fait pas partie des attendus.

  • lancer des requêtes sur une base de données de taille plus importante, comportant plusieurs tables, que les étudiants n'auront pas eu à construire, à l'aide d'une application offrant une interface graphique

  • enchaîner une requête sur une base de données et un traitement des réponses enregistrées dans un fichier.

Nous avons déjà dans cette séquence introductive, brossé un tableau des possibilités et des problèmes liés aux bases de données, en particulier de problèmes qui ne sont pas au programme. Dans la suite de cette formation, nous nous consacrons aux aspects spécifiques du programme, débutant dans la deuxième séquence, toutefois par un aspect qui n'est pas explicitement au programme, mais qui n'est pas non plus explicitement hors programme, car il est fondamental : il s'agit du calcul relationnel, fondement théorique des bases de données, sans quoi cette partie du cours se résumerait à une utilisation des bases de données comme un simple outil. Puis, dans la troisième séquence, nous discutons de l'algèbre relationnelle, et donnons quelques exemples d'optimisation, problématique fondamentale des bases de données. Dans la quatrième séquence, nous précisons la syntaxe SQL, et discutons du problème de l’agrégation de données. Enfin, après avoir abordé, dans la cinquième séquence, l'optimisation de requête, nous proposons deux séances de TP : un TP papier en séquence 6 et un TP machine nécessitant l'installation d'un environnement de travail (deux dernières séquences).