Optimisation de requêtes en algèbre relationnelle Calcul relationnel BD4 AD, SB Licence MASS, Master ISIFAR, Paris-Diderot Février 2012 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 1/20 Février 2012 1 / 20 Introduction Outline 1 Introduction 2 Optimisation de requtes 3 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 2/20 Février 2012 2 / 20
Introduction Le modèle relationnel Requêtes : expressions formées à partir des opérations de l'algèbre relationnelle Permettent d'extraire des informations (des tables) de la base Exemple : La base constituée des trois tables : fournisseurs(fno, nom, adresse, ville) produits(pno,design,prix,poids,couleur) commandes(cno,fno,pno,qte) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 3/20 Février 2012 3 / 20 Introduction Exemple On veut : déterminer les numéros des fournisseurs ayant comme nom "FastDelivery" π fno (σ nom= FastDelivery (fournisseurs)) déterminer les références, prix et quantités des produits commandés à plus de 10 exemplaires π pno,prix,qte (σ qte>10 (commandes pno produits)) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 4/20 Février 2012 4 / 20
Exemple Optimisation de requêtes Plusieurs requêtes différentes peuvent mener à des résultats identiques Exemple : Déterminer les références, prix et quantités des produits commandés à plus de 10 exemplaires Peut s écrire alternativement : F 1 = π pno,prix,qte (σ qte>10 (commandes pno produits)) F 2 = π pno,prix,qte (produits pno σ qte>10 (commandes)) F 3 = π pno,prix (produits) pno π pno,qte (σ qte>10 (commandes)) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 5/20 Février 2012 5 / 20 Optimisation de requêtes Exemple : coûts des évaluations Hypothèses (pour l exemple) : Chaque élément d'un uplet est codé sur 10 caractères La table Produit contient 100 tuples La table Commandes contient 50 tuples Elle contient aussi 10 tuples dont la valeur du champs qte est supérieure à 10 Stockage des relations : Pour Produit : 100 5 10 = 5000 caractères Pour Commandes : 50 4 10 = 2000 caractères Coût des opérations : Taille de la jointure Taille du produit cartésien (dans le pire des cas ie si pas de clés impliquées) commandes pno produits 5000 2000 = 10 7 caractères BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 6/20 Février 2012 6 / 20
Optimisation de requêtes Exemple : coûts des évaluations F 1 réalise une jointure "très tôt" Coût important : table intermédiaire de 10 7 caractères F 3 réalise d'abord des sélections et des projections π pno,prix (produits) = 100 2 10 = 2000 π pno,qte (σ qte>10 (commandes)) = 10 2 10 = 200 Jointure finale de taille (pire des cas) : 2000 200 = 400000 F 1 nécessite une table intermédiaire 250 plus grande que F 3 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 7/20 Février 2012 7 / 20 Optimisation de requêtes Coûts des évaluations Exemple précédent très modeste mais illustre les différences de coûts suivant les évaluations Les produits cartésiens sont très coûteux Les jointures peuvent (dans certains cas) générer des résultats intermédiaires assez gros Conclusion : "pousser" les sélections et projections vers l'intérieur des requêtes et réserver les jointures pour la fin (quand il y a moins de données) S'obtient en appliquant automatiquement des règles de re-écriture de requêtes BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 8/20 Février 2012 8 / 20
Optimisation de requêtes Règles d'équivalence pour l'optimisation Regroupement de restrictions (sélections) σ C (R) σ C1 (σ C2 ( σ ck (R) )) si C = C 1 C 2 C k Regroupement de projections π Y (R) π Y (π X (R)) (On doit avoir Y X) Inversion projection-restriction (C(Y ) est une condition portant sur un ensemble d'attributs Y de la relation R) π X (σ C(Y ) (R)) σ C(Y ) (π X (R)) si Y X Inversion projection-union π X (R 1 R 2 ) π X (R 1 ) π X (R 2 ) Associativité du produit cartésien (et jointure) R 1 C1 (R 2 C2 R 3 ) (R 1 C1 R 2 ) C2 R 3 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 9/20 Février 2012 9 / 20 Optimisation de requêtes Règles d'équivalence pour l'optimisation Inversion restriction-union σ C (R 1 R 2 ) σ C (R 1 ) σ C (R 2 ) Inversion restriction-différence σ C (R 1 R 2 ) σ C (R 1 ) R 2 Inversion projection-produit cartésien π Z (R 1 R 2 ) π Z X (R 1 ) π Z Y (R 2 ) où X et Y sont les attributs respectifs de R 1 et R 2 Inversion restriction-produit cartésien σ C(Y ) (R 1 R 2 ) σ C1 (Y 1 )(R 1 ) σ C2 (Y 2 )(R 2 ) où C(Y ) = C 1 (Y 1 ) C 2 (Y 2 ) avec Y 1 et Y 2 étants des sous-ensembles des attributs respectifs de R 1 et R 2 (ie Y 1 et Y 2 sont des sous-ensembles des schémas respectifs de ces deux relations) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 10/20 Février 2012 10 / 20
Optimisation de requêtes Optimisation Applications des équivalences ci-dessus pour ramener les produits cartésiens et jointure en haut de l'arbre de requêtes Quand c'est possible : projeter ou sélectionner avant d'utiliser les opérations ensemblistes (union, intersection, etc) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 11/20 Février 2012 11 / 20 Langages prédicatifs Requête en algèbre relationnelle : indique comment calculer le résultat Requête en calcul relationnel de tuples : décrit les propriétés satisfaites par tout tuple du résultat est un exemple de langage prédicatif BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 12/20 Février 2012 12 / 20
Exemple Requêtes : déterminer les références et prix des produits commandés à plus de 10 exemplaires On peut décrire le résultat par : l'ensemble des valeurs tpno et tprix des tuples t de la table produit pour lesquels il existe (au moins) un tuple t de la table commande vérifiant tnum = t num et t qte > 10 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 13/20 Février 2012 13 / 20 Variables, relations, formules R(A 1 : D 1,, A n : D n ) : schéma de relation Objets du langage : les tuples t représentés par t = (ta 1,, ta n ) où chaque composant ta i est à valeur dans D i Langage : Les relations R i de la base, les domaines D j associés Les comparateurs usuels : <,, =,, >, BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 14/20 Février 2012 14 / 20
Formulas atomiques du calcul relationnel de tuples Formules "atomiques" : R(t) où R est une relation de la base et t une variable de tuple a b ou t 1 A b ou t 1 A t 2 B Avec a, b des constantes (ie des éléments d'un domaine d'une relation), t 1, t 2 des tuples, A, B des attributs et l'opération est à choisir dans {<,, =,, >, } Exemple : Exemples dans la base Tennis du TD - tannaiss > 1998, - t 1 NuGagnant = t 2 NuPerdant, sont des formules atomiques correctes BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 15/20 Février 2012 15 / 20 Formule du calcul relationnel de tuples Définition inductive 1 Toute formule atomique ϕ est une formule 2 Si ϕ et ψ sont des formules, alors ϕ ψ, ϕ ψ et ϕ sont des formules 3 Si ϕ est une formule, R une relation et t une variable de tuple, alors sont des formules t R(t) ϕ et t R(t) ϕ Les variables de tuples non quantifiées sont dites libres Elles contribuent à former le résultat On note en en-tête de formule les tuples et attributs du résultat {t 1 A 1,, t k A k : ϕ(t 1,, t k )} BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 16/20 Février 2012 16 / 20
Exemples Joueurs de Tennis nés après 1990 {t : Joueurs(t) tannaiss > 1998 } Numéros de joueurs ayant participé à Roland-Garros depuis 2004 {tnujoueur : Gains(t) tlieutournoi = R G tannee > 2004 } Ensemble des gains de Nadal à Wimbledon Requête {tprime : ψ(t)} avec : ψ(t) t 1 Joueur(t 1 ) t 1 Nom = Nadal t 1 NuJoueur = tnujoueur tlieutournoi = Winbledon Gains(t) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 17/20 Février 2012 17 / 20 Exemples On ne spécifie que les formules ici - La nationalité des joueurs ayant perdu 6 0, 6 0, 6 0 au cours de l histoire de Wimbledon ψ(tnationalite) Joueur(t) t 1 Rencontres(t 1 ) tnujoueur = t 1 NuPerdant t 1 LieuTournoi = Wimbledon t 1 Score = 6 0, 6 0, 6 0 - Le nom des joueurs qui ont perdu au premier tour en 1998 à Roland-Garros : ψ(tnom) Joueur(t) t 1 Rencontres(t 1 ) tnujoueur = t 1 NuPerdant t 1 Annee = 98 t 1 LieuTournoi = RG t 2 (Rencontres(t 2 ) t 2 Annee = 98 t 2 LieuTournoi = RG ) t 2 NuGagnant tnujoueur BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 18/20 Février 2012 18 / 20
Equivalence avec l'algèbre relationnelle Le théorème suivant, non prouvé ici, est vrai : Théorème L'algèbre relationnelle et le calcul relationnel de tuples définissent le même ensemble de requêtes Ie toute requête définissable dans un langage est définissable dans l'autre BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 19/20 Février 2012 19 / 20 Equivalence avec l'algèbre relationnelle : exemple ψ(tnationalite) Joueur(t) t 1 Rencontres(t 1 ) tnujoueur = t 1 NuPerdant t 1 LieuTournoi = Wimbledon t 1 Score = 6 0, 6 0, 6 0 π Nationalite Joueur C0 σ C1 (Rencontres) Avec C 0 JoueurNuJoueur = RencontresNuPerdant et C 1 LT = Wimbledon Score = 6 0, 6 0, 6 0 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) Algèbre et calcul relationnels 20/20 Février 2012 20 / 20