Introduction
Voici la quatrième des six séquences du Mooc Bases de données relationnelles.
L'algèbre relationnelle fait partie des fondements des bases de données relationnelles, utilisée en interne par le SGBD pour évaluer les requêtes. Le langage SQL quant à lui est destiné aux utilisateurs du SGBD et, à l'heure actuelle, est le langage standard d'interrogation. Il marie d'une certaine façon l'algèbre relationnelle et le calcul relationnel de n-uplets. SQL a été standardisé par l'ANSI en 1986 puis par l'ISO en 1989, 1992, 1999, 2003 et 2008. Ces standards successifs ont étendu les capacités du langage. En plus de ces standards, SQL possède de nombreux dialectes spécifiques à chaque SGBD. En effet, le développement des SGBD s'est déroulé en parallèle, voire a précédé la standardisation de la norme SQL. En conséquence, seul un sous-ensemble de la norme est supporté par la grande majorité des SGBD (en particulier les SGBD open-source). Ce sous-ensemble correspond en fait à la norme SQL-92. C'est donc cette version de la norme SQL que nous allons présenter ici.
La norme SQL-92 se décompose en plusieurs parties. L'interrogation des données se fait par l'opération de sélection (SELECT), dont la sémantique est donnée par une expression du calcul relationnel et dont l'exécution peut être faite par une équivalence avec des opérateurs de l'algèbre relationnelle. Le langage de manipulation de données (Data Manipulation Language ou DML) permet de modifier les données grâce à l'insertion (INSERT), la mise à jour (UPDATE) et la suppression (DELETE) de n-uplets. Le langage de définition de données (Data Definition Language ou DDL) se charge de la définition du schéma d'une base de données. Enfin, SQL-92 inclut d'autres opérations comme la gestion des droits ou la gestion des transactions.
L'objectif de cette séquence est de vous donner une connaissance de la syntaxe SQL, qui vous permette ensuite de tester la compréhension des bases de données en utilisant des SGBD existants, tels que MySQL, Oracle, IBM DB2, Microsoft SQL Server, etc. Le langage SQL étant standardisé, les exemples donnés ici fonctionneront sur n'importe quel SGBD respectant la norme SQL-92 (c'est-à-dire à peu près tous). Nous introduisons également dans cette séquence le calcul d'agrégats, qui n'est pas traité dans le calcul relationnel simple et l'algèbre relationnelle SPJR.