4. Les composants de l'architecture d'un système de bases de données
111
que les étapes de traitement suivantes puissent avoir lieu. C'est donc
l'arbre d'interrogation qui permet de vérifier à la fois la syntaxe de la
requête et les droits d'accès de l'utilisateur. Il existe d'autres
contraintes de sécurité qui ne peuvent être vérifiées qu'au moment de
l'exécution d'une requête. Tel est le cas, par exemple, d’une protection
des données basée sur des valeurs ou des codes que l'utilisateur
spécifie au moment de l'interrogation et qui autorisent l'accès à
certaines catégories précises de données.
De l’optimisation à
la génération du
code
Après le contrôle d'accès et la vérification de l'intégrité des
données, la seconde étape consiste à choisir et optimiser les chemins
d'accès. Enfin, dans la troisième étape, a lieu soit la génération du
code proprement dite, soit l'exécution de la requête en mode
interprété. Dans le premier cas, la génération du code produit un
module d'accès stocké dans une bibliothèque en vue de son exécution
ultérieure. Dans le second cas, c'est un interpréteur qui assure le
contrôle dynamique de l'exécution de la requête.
4.2.2 Optimisation des requêtes par transformation
algébrique
Avantage des
expressions
algébriques
équivalentes
Ainsi qu'il a déjà été vu au chapitre 3, il est possible de combiner
les opérateurs de l'algèbre relationnelle. Nous parlons d'expressions
algébriques équivalentes lorsqu'elles produisent un même résultat
malgré les différentes suites d’opérateurs. Les expressions
équivalentes nous intéressent dans la mesure où nous pouvons
optimiser une interrogation de la base de données par des
transformations algébriques sans en modifier le résultat. Elles
permettent donc de réduire le coût du traitement des requêtes et
constituent ainsi une partie importante du module d'optimisation dans
un système de bases de données relationnelles.
La séquence des opérateurs dans une expression algébrique
exerce une influence déterminante sur le coût de traitement d'une
interrogation. Pour le comprendre, considérons de nouveau notre
dernier exemple de requête : nous pouvons substituer à l'expression
Précédent

- 126/301

Suivant