Introduction
Voici la première des six séquences du Mooc Bases de données relationnelles.
Nous allons parler de systèmes informatiques qui nous aident à gérer des données. Nous avons donc, d'un côté, un serveur de données quelque part sur la Toile, avec des disques magnétiques et leurs pistes qui gardent précieusement des séquences de bits, des structures d'accès compliquées comme des index ou des arbres-B, des hiérarchies de mémoires avec leurs caches et, de l'autre, un utilisateur.
Supposons que le serveur soit celui d'IMDb qui gère une base de données sur le cinéma. Supposons que l'utilisateur, disons Alice, veuille savoir quels films ont été réalisés par Alfred Hitchcock. Pour ce faire, elle spécifie des mots-clés ou remplit les champs d'un formulaire proposé par IMDb. Sa question voyage depuis son navigateur jusqu'au serveur de données. Là, cette question est transformée en un programme peut-être complexe qui s'exécute pour obtenir la réponse. Ce qui est important : ce programme, Alice n'a pas envie de l'écrire ; elle n'a pas à l'écrire.
Le système élémentaire qui permet de gérer des données est un système de fichiers. Un fichier est une séquence de bits qui peut représenter une chanson, une photo, une vidéo, un courriel, une lettre, un roman, etc. Votre ordinateur personnel et votre téléphone stockent leurs données dans des systèmes de fichiers. Et parfois quand vous ne savez plus où vous avez mis quelque chose, vous faites des recherches dans ces système de fichiers. C'est rudimentaire. Un moteur de recherche de la Toile ne fait pas autre chose, seulement il le fait sur un système de fichiers à l'échelle de la planète.
Dans ce chapitre, nous parlerons de systèmes qui gèrent aussi des données mais qui sont bien plus sophistiqués que les systèmes de fichiers : les systèmes de gestion de bases de données. Ce sont des logiciels complexes, résultats de dizaines d'années de recherche et de développement. Ils permettent à des individus ou des programmes d'exprimer des requêtes pour interroger des bases de données ou pour les modifier. Nous nous focaliserons ici sur les plus répandus d'entre ces systèmes, les systèmes relationnels, parmi lesquels nous trouvons des logiciels commerciaux très répandus comme celui d'Oracle et des logiciels libres très utilisés comme MySQL.
Dans cette formation, nous couvrons le programme des classes préparatoires aux grandes écoles (CPGE) scientifiques, toutefois il nous est paru indispensable d'aller au delà d'une interprétation stricte du programme, pour permettre au lecteur de comprendre les fondements de la théorie des bases de données, sans laquelle il ne serait qu'un simple utilisateur d'un Système de Gestion de Bases de Données (SGBD). Nous indiquons les éléments qui sont à la limite du programme par la notation †, et ceux qui sont au delà par la notation ‡.