Architecture logicielle d’un SGBD

On peut décrire l'architecture logicielle d'un SGBD de la manière
suivante : 

 

- le moniteur d'exécution a pour rôle de gérer l'interface
d'accès du SGBD, les connections à la base, de retourner
à l'extérieur les messages d'erreurs ou les résultats
obtenus ainsi que d'enchainer les différentes opérations.

 - l'analyseur a pour but d'effectuer les vérifications
syntaxiques et sémantiques sur les commandes qu'on lui passe ainsi
que de produire une représentation interne de ces commandes. Il
s'agit la plupart du temps d'un arbre algébrique dont les noeuds
feuilles représentent les relations sur lesquelles porte la commande
et les noeuds non feuilles représentent les opérateurs algébriques
qui s'appliquent sur ces relations) :

 

 - le contrôleur vérifie que les commandes sont licites,
c'est à dire que l'utilisateur a les droits
requis pour les commandes effectuées, que les contraintes
d'intégrité
ne sont pas violées.

 - l'optimiseur produit à partir de la représentation
interne d'une commande, un plan d'exécution
(séquence d'opérations de base sur la BD) optimum. L'optimisation
utilise les propriétés algébriques des opérateurs
ainsi que des fonctions de coût.

 - le système d'exécution doit exécuter les
plans d'exécution qui lui sont fournis. Cette exécution peut
être interprétée (dans la plupart des cas) ou compilée
(rarement). L'avantage de la compilation est qu'elle permet de ne pas effectuer
les phases d'analyse, de contrôle et d'optimisation à chaque
fois. Une commande compilée est cataloguée et peut être
ensuite évaluée directement. Peu de SGBD commerciaux permettent
une exécution compilée.

 L'exécution d'une commande s'appuie sur la machine algébrique
qui permet d'exécuter un ensemble d'opérateurs
canoniques
(sélection, projection, jointure, ...). Le gestionnaire
des méthodes d'accès permet d'accéder efficacement
aux données sur le disque et le gestionnaire des accès
concurrents
permet de contrôler l'accès multi-utilisateurs.

 - le catalogue joue un rôle central dans le SGBD puisque
c'est la structure de données qui centralise toute l'information
nécessaire aux différents modules. Il contient notamment
la description des relations, vues
et contraintes d'intégrité,
la description des utilisateurs avec leurs droits
d'accès
ainsi que la description des structures de stockage
utilisées (placement des données sur le disque, index définis,
...). La plupart du temps, le catalogue est défini comme un ensemble
de relations qui sont accessibles par les utilisateurs (s'ils en ont le
droit) come toute relation.