Réponses manquantes : Débogage et Réparation de requêtes
Auteur / Autrice : | Aikaterini Tzompanaki |
Direction : | Nicole Bidoit-Tollu |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 14/12/2015 |
Etablissement(s) : | Université Paris-Saclay (ComUE) |
Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire de recherche en informatique (Orsay, Essonne ; 1998-2020) - Laboratoire de recherche en informatique (Orsay, Essonne ; 1998-2020) |
établissement de préparation de la thèse : Université Paris-Sud (1970-2019) | |
Jury : | Président / Présidente : Christine Froidevaux |
Examinateurs / Examinatrices : Nicole Bidoit-Tollu, Christine Froidevaux, David Gross-Amblard, Yannis Velegrakis, Mélanie Herschel, Philippe Rigaux | |
Rapporteur / Rapporteuse : David Gross-Amblard, Yannis Velegrakis |
Résumé
La quantité croissante des données s’accompagne par l’augmentation du nombre de programmes de transformation de données, généralement des requêtes, et par la nécessité d’analyser et comprendre leurs résultats : (a) pourquoi telle réponse figure dans le résultat ? ou (b) pourquoi telle information n’y figure pas ? La première question demande de trouver l’origine ou la provenance des résultats dans la base, un problème très étudié depuis une 20taine d’années. Par contre, expliquer l’absence de réponses dans le résultat d’une requête est un problème peu exploré jusqu’à présent. Répondre à une question Pourquoi-Pas consiste à fournir des explications quant à l’absence de réponses. Ces explications identifient pourquoi et comment les données pertinentes aux réponses manquantes sont absentes ou éliminées par la requête. Notre travail suppose que la base de données n’est pas source d’erreur et donc cherche à fournir des explications fondées sur (les opérateurs de) la requête qui peut alors être raffinée ultérieurement en modifiant les opérateurs ''fautifs''. Cette thèse développe des outils formels et algorithmiques destinés au débogage et à la réparation de requêtes SQL afin de traiter des questions de type Pourquoi-Pas. Notre première contribution, inspirée par une étude critique de l’état de l’art, utilise un arbre de requête pour rechercher les opérateurs ''fautifs''. Elle permet de considérer une classe de requêtes incluant SPJA, l’union et l’agrégation. L’algorithme NedExplain développé dans ce cadre, a été validé formellement et expérimentalement. Il produit des explications de meilleure qualité tout en étant plus efficace que l’état de l’art.L’approche précédente s’avère toutefois sensible au choix de l’arbre de requête utilisé pour rechercher les explications. Notre deuxième contribution réside en la proposition d’une notion plus générale d’explication sous forme de polynôme qui capture toutes les combinaisons de conditions devant être modifiées pour que les réponses manquantes apparaissent dans le résultat. Cette méthode s’applique à la classe des requêtes conjonctives avec inégalités. Sur la base d’un premier algorithme naïf, Ted, ne passant pas à l’échelle, un deuxième algorithme, Ted++, a été soigneusement conçu pour éliminer entre autre les calculs itérés de sous-requêtes incluant des produits cartésien. Comme pour la première approche, une évaluation expérimentale a prouvé la qualité et l’efficacité de Ted++. Concernant la réparation des requêtes, notre contribution réside dans l’exploitation des explications polynômes pour guider les modifications de la requête initiale ce qui permet la génération de raffinements plus pertinents. La réparation des jointures ''fautives'' est traitée de manière originale par des jointures externes. L’ensemble des techniques de réparation est mis en oeuvre dans FixTed et permet ainsi une étude de performance et une étude comparative. Enfin, Ted++ et FixTed ont été assemblés dans une plate-forme pour le débogage et la réparation de requêtes relationnelles.