Chapitre IV: Le langage Sql : un manipulateur de bases
de données relationnelles
IV.1. Introduction
Nombre d'études ayant trait au langage SQL (Structured
Query Language) soutiennent que ce langage d'interrogation des données
est par la plupart supporté par des produits commerciaux que ce soit par
les systèmes de gestion de bases de données micro tel que Access
ou par les produits plus professionnels tels que Oracle. Il s'ensuit que ce
langage a fait l'objet de plusieurs normes ANSI/ISO avec une remontée de
la norme SQL2 qui a été définie en 1992. Cependant, il est
considéré comme le langage d'accès normalisé aux
bases de données.
A ce stade de la réflexion, son succès est
dû essentiellement à sa simplicité et au fait qu'il
s'appuie sur le schéma conceptuel pour énoncer des requêtes
en laissant le SGBD responsable de la stratégie d'exécution. Or,
dire cela revient à expliquer que le langage SQL propose un langage de
requêtes ensembliste et assertionnel. Car, par suite, il ne
possède pas la puissance d'un langage de programmation :
entrées/sorties, instructions conditionnelles, boucles et
affectations.
Pour mieux saisir, avec certains traitements, il est donc
nécessaire de coupler le langage SQL avec un langage de programmation
plus complet. De ce fait, il apparaît donc légitime de dire que
SQL est un langage relationnel, il manipule donc des tables (i.e. des
relations, c'est-à-dire des ensembles) par l'intermédiaire de
requêtes qui produisent également des tables. Par ailleurs, s'il
faut considérer les jalons de son trajectoire, d'un côté
disons que les différents produits phares ont évolué,
entre autre la norme SQL est passée à SQL-2, puis SQL-3. Ainsi
voit-on des files d'évolutions d'attentes en continu, SQL est
désormais un langage incontournable pour tout SGBD moderne.
Dans les faits, la réalité est plus complexe,
bien qu'une norme existe, on assiste à une prolifération de
dialectes propres à chaque produit : soit des sous-ensembles de la norme
(certaines fonctionnalités n'étant pas implantées), soit
des sur-ensembles (ajout de certaines fonctionnalités, propres à
chaque produit). Du reste, Oracle et Informix dominent le marché actuel,
SQL-Server (de Microsoft) tente de s'imposer dans le monde des PC sous NT. Avec
ce lissage d'autres produits très chers, on voit exister heureusement
des systèmes libres et gratuits : MySQL et PostgreSQL qui au final sont
les plus connus.
66
De l'autre côté, bien que ces SGBDR n'aient pas
la puissance des produits commerciaux, certains s'en approchent de plus en
plus. Cela dit, les différences notables concernent principalement les
environnements de développement qui sont de véritables ateliers
logiciels sous Oracle et qui sont réduits à des interfaces de
programmation C, Python, Perl sous PostgreSQL. De même, pour les
interfaces utilisateurs : il en existe pour PostgreSQL, mais ils n'ont
certainement pas la puissance de leurs équivalents commerciaux.
Pour notre cas, nous ne présenterons ici que les
fonctionnalités principales de SQL. Il est ici probant que les langages
utilisés dans les bases de données relationnelles se fondent sur
l'algèbre relationnelle et/ou le calcul relationnel. Une fois de plus,
ce dernier, est basé sur la logique des prédicats (expressions
d'une condition de sélection définie par l'utilisateur). On
distinguer 3 grandes classes de langages :
Les langages algébriques,
basés sur l'algèbre relationnelle de CODD, dans lesquels les
requêtes sont exprimées comme l'application des opérateurs
relationnels sur des relations. Le langage SQL, standard pour l'interrogation
des bases de données, fait partie de cette catégorie.
Les langages basés sur le calcul
relationnel de tuples, construits à partir à partir
de la logique des prédicats, et dans lesquels les variables
manipulées sont des tuples (ex. : QUEL, QUEry Language).
Les langages basés sur le calcul
relationnel de domaines, également construit à
partir de la logique des prédicats, mais en faisant varier les variables
sur les domaines des relations.
Toutefois, le langage SQL, est un langage normalisé
permettant :
La définition des éléments
d'une base de données (tables, colonnes, clefs, index,
contraintes, ...),
La manipulation des données
(insertion, suppression, modification, extraction, . . .),
Le contrôle des données (acquisition et
révocation des droits),
L'interrogation de la base (clause
SELECT)
|