Le document que vous commencez à lire fait partie de l’ensemble des supports d’apprentissage proposés sur le site http://www.bdpedia.fr. Il fait partie du cours consacré aux bases de données relationnelles, divisé en deux parties:

Deux autres cours, aux contenus proches, sont également disponibles:

Reportez-vous à http://www.bdpedia.fr pour plus d’explications.

Important

Ce cours de Philippe Rigaux est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International. Cf. http://creativecommons.org/licenses/by-nc-sa/4.0/.

Tout le matériel proposé ici sert de support au cours “Aspects systèmes des bases de données” proposé par le département d’informatique du Cnam. Le code du cours est NFP107 (voir le site http://deptinfo.cnam.fr/new/spip.php?rubrique220 pour des informations pratiques). Il est donné en

  • Cours présentiel (second semestre, mercredi soir)
  • Cours à distance (premier semestre, avec supports audiovisuels)

1. Introduction

Supports complémentaires:

  • Diapositives: (à venir)
  • Vidéo de présentation (à venir)

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.

Les systèmes présentés ici sont les SGBD Relationnels, simplement appelés systèmes relationnels. Il s’agit de la classe la plus répandue des SGBD, avec des représentants bien connus comme Oracle, MySQL, SQL Server, etc. Tous ces systèmes s’appuient sur un modèle de données normalisé, dit relationnel, caractérisé notamment par le langage SQL.

Les documents proposés ici proposent d’aller ”sous le capot” de ces systèmes 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.

Le cours est découpé en chapitres, couvrant un sujet bien déterminé, et en sessions. Nous essayons de structurer les sessions pour qu’elles demandent environ 2 heures de travail personnel (bien sûr, cela dépend également de vous). Pour assimiler une session vous pouvez combiner les ressources suivantes:

  • La lecture du support en ligne: celui que vous avez sous les yeux, également disponible en PDF ou en ePub.
  • Le suivi du cours, en vidéo ou en présentiel.
  • Le test des exemples de code fournis dans chaque session.
  • La réalisation des exercices proposés en fin de session.
  • Dans la plupart des chapitres, des Quiz sur des questions de cours; si vous ne savez pas répondre à une question du Quiz:, relisez le chapitre et approfondissez.

La réalisation des exercices est essentielle pour vérifier que vous maîtrisez le contenu.

Vous devez maîtriser le contenu des sessions dans l’ordre où elles sont proposées. Commencez par lire le support, jusqu’à ce que les principes vous paraissent clairs. Reproduisez les exemples de code: tous les exemples donnés sont testés et doivent donc fonctionner. Le cas échéant, cherchez à résoudre les problèmes par vous-mêmes: c’est le meilleur moyen de comprendre. Finissez enfin par les exercices. Les solutions sont dévoilées au fur et à mesure de l’avancement du cours, mais si vous ne savez pas faire un exercice, c’est sans doute que le cours est mal assimilé et il est plus profitable d’approfondir en relisant à nouveau que de simplement copier une solution.

Enfin, vous êtes totalement encouragé(e) à explorer par vous-mêmes de nouvelles pistes (certaines sont proposées dans les exercices).