Algèbre Relationnelle et langage SQL

(c) 1997, 2020 Didier Boulle

http://webtic.free.fr/sql

Introduction

"La conception et l'utilisation de bases de données relationnelles n'est pas un domaine réservé aux informaticiens". C'est en tout cas ce que pensent beaucoup d'utilisateurs en voyant ce type de logiciel intégré aux suites bureautiques les plus connues.

Cependant la maîtrise d'un SGBDR (Système de Gestion de Bases de Données Relationnelles) est loin d'être aussi facile à acquérir que celle d'un logiciel de traitement de texte ou d'un tableur.

Plusieurs étapes sont nécessaires à la mise en place d'une base de données, dès lors que l'on a précisément défini ses besoins (ce qui n'est déjà pas chose facile !) : la création de la structure de la base sous forme de tables (tableaux de données) reliées entre elles par des données clés, la conception des requêtes qui permettront d'extraire ou de mettre à jour les informations qu'elle contient, la conception de l'interface homme-machine (formulaires et états) qui rendra plus conviviale la saisie et la restitution des informations.

Le degré de difficulté dans la conception de l'IHM varie beaucoup selon le logiciel utilisé qui est d'ailleurs le plus souvent différent du SGBDR.

La conception de la structure de la base de données, si elle est un peu complexe à appréhender, peut nécessiter, en amont, l'utilisation d' outils de modélisation conceptuels de type  entités-associations (Modèle Conceptuel des Données de la méthode MERISE ou diagramme de classes du langage UML). Mais, même dans les cas les plus simples il faut obligatoirement connaître les concepts du Modèle Relationnel , sans quoi un utilisateur non averti risque de créer une structure inadaptée et sera vite bloqué dans la conception des requêtes.

Il s'agit ici, d'étudier les principaux opérateurs de l'algèbre relationnelle servant de base à l'élaboration et à l'analyse (plan d'exécution) des requêtes.

Bon nombre d'utilisateurs qui voient les matériels informatiques et les logiciels changer tous les trois mois, seraient surpris d'apprendre que l'algèbre relationnelle a été définie par Codd en 1970.

Elle est à l'origine du langage SQL (Structured Query Language) d'IBM, langage d'interrogation et de manipulation de tous les SGBDR actuels (Oracle, PostgreSQL, MySQL, MS SQLServer, MS Access et tous les autres).

Une bonne maîtrise de l'algèbre relationnelle permet de concevoir n'importe quelle requête aussi complexe soit-elle avant de la mettre en œuvre à l'aide du langage SQL.

Parmi les opérations de l'algèbre relationnelle, on dispose d'opérations classiques sur les ensembles (union, intersection, différence, produit cartésien) puis d'opérations propres (projection, sélection, jointure, division).

Sont également exposées ici des opérations de calcul, de regroupement , de comptage et de tri, non définies à l'origine par Codd mais très utiles.

Tous les opérateurs sont présentés à l'aide d'exemples clairs. Pris séparément, ils sont faciles à appréhender. La rédaction de requêtes (combinaison d'opérateurs) est illustrée par des exercices concrets.

Le langage SQL n'est abordé que dans le cadre des opérations évoquées ci-dessus. Seule l'instruction SELECT et ses multiples aspects sont donc présentés.