Il faut être morale pour faire la politique?
1. INTRODUCTION
Dans les systèmes relationnels, les langages du type SQL, QUEL, QBE, etc ..., sont dits assertionnels car ils permettent d'exprimer l'ensemble des données que l'on souhaite obtenir sans indiquer la façon de les obtenir. L'exécution de la requête peut alors être assurée de plusieurs façons. Il appartient au système de gestion de base de données de rechercher la solution conduisant aux performances les meilleures. Cette phase d'optimisation dans un SGBD relationnel est l'une des caractéristiques essentielles de ce type de système. Même si la tâche d'optimisation nécessite un temps machine non négligeable, ce temps reste bien inférieur au gain escompté par l'application d'une stratégie d'exécution optimale. Ce chapitre présente les principales techniques qui sont utilisées : 1. optimisation des requêtes exprimées dans un langage algébrique. Cette optimisation est basée sur les propriétés des opérateurs de l'algèbre relationnelle, et consiste à réorganiser les opérations de la requête. Ce type d'optimisation peut être employé pour tout langage assertionnel. Dans le cas d'un langage de type prédicatif plutôt qu'algébrique, une étape préalable consiste à traduire les requêtes en algèbre; 2. choix de la meilleure stratégie pour chaque opération (ou groupe d'opérations) : sélection, produit, jointure, .... Ce choix est effectué à partir de l'évaluation du coût des différentes stratégies possibles en fonction des caractéristiques des fichiers sur lesquels sont implantées les relations. Les modules d'optimisation des requêtes des SGBD relationnels sont fondés sur l'une ou l'autre, ou sur ces deux techniques.
2. OPTIMISATION D'EXPRESSIONS ALGEBRIQUES
La première étape d'une optimisation de type algébrique est la traduction de la requête utilisateur en une forme interne basée sur l'algèbre relationnelle. L'optimisation consiste ensuite à déterminer l'expression algébrique, équivalente à la requête initiale, dont