769802668 Page 2 sur 19
1. Cas général
Définition d’une base de données :
La norme SQL92 ne définit pas formellement la notion de base de données. La norme définit par
contre :
- des concepts : environnement-SQL, catalogue, schéma, tables, vues, colonnes, domaines.
- une structure hiérarchique de ces concepts : un environnement-SQL contient zéro, un ou
plusieurs catalogues ; un catalogue contient un ou plusieurs schémas et un schéma est contenu
dans un seul catalogue ; un schéma contient zéro, une ou plusieurs tables et chaque table
appartient à un seul schéma, etc.
Un schéma est un ensemble logique de domaines, tables, contraintes, vues et privilèges. C’est la
notion théorique la plus proche de celle de base de données usuelle (par exemple, Ingres). Chaque
constructeur de SGBD peut en avoir une implémentation physique qui lui est propre.
Chaque catalogue contient un schéma particulier, dit schéma d’information, regroupant des tables
qui définissent tous les objets se trouvant dans les schémas du catalogue. Certains parlent de
dictionnaire ou de méta-base de la base de données. La norme précise un certains nombre de
tables : table des schémas (c.-à-d. décrivant les schémas), table des tables, tables des colonnes,
tables des droits, etc. Mais les utilisateurs ne peuvent accéder à toutes les données de la méta-base
(penser aux mots de passe). Ce qui est alors souvent appelé tables systèmes est en fait un ensemble
de vues sur les tables de la méta-base. Les utilisateurs n’ont accès qu’à ces vues qu’en lecture (pour
des raisons de sécurité évidentes, ils ne peuvent les modifier). Par exemple, le SGBD Oracle définit
plus d’une centaine de vues sur les tables de la méta-base.
Noms des objets d’une base
Avant SQL92, la notion de schéma était couplée avec celle de nom-utilisateur, ce qui garantissait
l’unicité des noms de schémas. En SQL92, un utilisateur pouvant créer plusieurs schémas, ceux-ci,
en cas d’ambiguïté, sont désignés en fonction du catalogue qui les contient. Le nom complet d’une
table est alors :
nom_catalogue.nom_schéma.nom_table
(penser à la définition hiérarchique des fichiers UNIX)
Le schéma entité-association donné en annexe modélise les objets des bases de données SQL92.
Ces objets sont souvent identifiés relativement à d’autres.
A propos de la norme SQL
La norme ne définit pas tout. Parmi les éléments non définis, elle distingue :
- ceux définis par l’implémentation (149 éléments) : l’implémentation doit en définir la syntaxe,
les valeurs, le comportement,…, suivant les cas. Par exemple, la précision du type de donnée
entier doit être définie par l’implémentation.
I. DICTIONNAIRE DE DONNEES