Ce chapitre est extrait de [sim98], mémoire de ma�trise (Master's Thesis) de Stefan Simkovics. Cette ma�trise a été préparée � l'université de technologie de Vienne sous la direction du professeur (O.Univ.Prof.Dr.) Georg Gottlob et de l'assistante d'université (Univ.Ass.) Mag. Katrin Seyr.
Ce chapitre présente la structure interne du serveur PostgreSQL™. La lecture des sections qui suivent permet de se faire une idée de la fa�on dont une requ�te est exécutée ; les opérations internes ne sont pas décrites dans le détail. Ce chapitre a, au contraire, pour but d'aider le lecteur � comprendre la suite des opérations effectuées sur le serveur depuis la réception d'une requ�te jusqu'au retour des résultats.
Ceci est un rapide aper�u des étapes franchies par une requ�te pour obtenir un résultat.
Une connexion au serveur est établie par une application. Elle transmet une requ�te et attend le retour des résultats.
L'étape d'analyse (parser stage) vérifie la syntaxe de la requ�te et crée un arbre de requ�te (query tree).
Le syst�me de réécriture (rewrite system) recherche les r�gles (stockées dans les catalogues syst�me) � appliquer � l'arbre de requ�te. Il exécute les transformations indiquées dans le corps des r�gles (rule bodies).
La réalisation des vues est une application du syst�me de réécriture. Toute requ�te utilisateur impliquant une vue (c'est-�-dire une table virtuelle), est réécrite en une requ�te qui acc�de aux tables de base, en fonction de la définition de la vue.
Le planificateur/optimiseur (planner/optimizer) transforme l'arbre de requ�te (réécrit) en un plan de requ�te (query plan) passé en entrée de l'exécuteur.
Il crée tout d'abord tous les chemins possibles conduisant au résultat. Ainsi, s'il existe un index sur une relation � parcourir, il existe deux chemins pour le parcours. Le premier consiste en un simple parcours séquentiel, le second utilise l'index. Le co�t d'exécution de chaque chemin est estimé ; le chemin le moins co�teux est alors choisi. Ce dernier est étendu en un plan complet que l'exécuteur peut utiliser.
L'exécuteur traverse récursivement les étapes de l'arbre de planification (plan tree) et retrouve les lignes en fonction de ce plan. L'exécuteur utilise le syst�me de stockage lors du parcours des relations, exécute les tris et jointures, évalue les qualifications et retourne finalement les lignes concernées.
Les sections suivantes présentent en détail les éléments bri�vement décrits ci-dessus.