Thèse soutenue

Traduction mécanisée et certifiée en Coq d'une algèbre relationnelle étendue pour SQL vers une algèbre imbriquée

FR  |  
EN
Auteur / Autrice : Mohammed Houssem Eddine Hachmaoui
Direction : Evelyne ContejeanVéronique Benzaken
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 16/10/2020
Etablissement(s) : université Paris-Saclay
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)
référent : Faculté des sciences d'Orsay
Jury : Président / Présidente : Sophie Tison
Examinateurs / Examinatrices : Alan Schmitt, Nicolas Tabareau, Nicolas Thiéry
Rapporteurs / Rapporteuses : Alan Schmitt, Mohand Saïd Hacid

Résumé

FR  |  
EN

En 1974, Boyce et Chamberlin ont créé le langage SQL en se basant sur l'algèbre relationnelle proposée par Codd en 1970, mais à mesure d'extensions, la sémantique formelle de SQL s'est éloignée de celle de l'algèbre relationnelle. Le petit fragment select from where de SQL peut correspondre à une algèbre relationnelle avec une sémantique multiensemble en restreignant les expressions et les formules à celles exprimables en algèbre relationnelle. Pour capturer la sémantique du fragment beaucoup plus réaliste select from where group by having en prenant en compte toutes les expressions y compris celles avec agrégats, toutes les formes de formules, les valeurs nulles et, encore plus subtil, les environnements très particuliers de SQL, Benzaken et Contejean ont proposé l'algèbre SQLalg qui est une extension de l'algèbre relationnelle avec un nouvel opérateur pour la partie group by having conçu spécifiquement pour prendre en compte tous les aspects de SQL cités précédemment. Ce même fragment de SQL, avec toute ses subtilités, est-il capturable par l'algèbre relationnelle imbriquée ? Cette thèse prouve formellement que oui. En effet, nous proposons une traduction, certifiée en coq, de SQLalg vers NRAᵉ, qui est une formalisation en coq de l'algèbre relationnelle imbriquée. La traduction prend en compte les expressions simples et complexes, les formules SQL et reflète parfaitement comment les environnements sont construits et manipulés, spécialement pour les agrégats et les requêtes corrélées. Ce travail s'inscrit dans un cadre plus global, celui du projet DBCert: une chaîne de compilation certifiée en Coq de SQL vers JavaScript.