Français Anglais
Accueil Annuaire Plan du site
Accueil > Production scientifique > Thèses et habilitations
Production scientifique
Doctorat de

Doctorat
Equipe : Vérification d'Algorithmes, Langages et Systèmes

Au-delà des frontières entre moteurs d'exécution des langages de programmation et bases de données

Début le 01/10/2015
Direction : BENZAKEN, Véronique

Ecole doctorale : ED STIC 580
Etablissement d'inscription : Université Paris-Sud

Lieu de déroulement : LRI - VALS

Soutenue le 13/09/2019 devant le jury composé de :
Directrice de thèse :
- Mme. Véronique Benzaken - Professeur, Université Paris-Sud

Co-encadrant de thèse :
- M. Kim Nguyen - Maître de conférences, Université Paris-Sud

Rapporteurs :
- M. James Cheney - Reader, Université d'Édimbourg
- M. Emmanuel Chailloux - Professeur, Sorbonne Université

Examinateurs :
- M. Alan Schmitt - Directeur de recherche, INRIA Rennes
- M. Jérôme Siméon - Chief scientist, Clause Inc.
- Mme. Sarah Cohen Boulakia - Professeur, Université Paris-Sud

Invité :
- M. Giuseppe Castagna - Directeur de recherche, CNRS et Université de
Paris

Activités de recherche :

Résumé :
Plusieurs classes de solutions permettent d'exprimer des requêtes dans
des langages de programmation: les interfaces spécifiques telles que
JDBC, les mappings objet-relationnel ou object-relational mapping en
anglais (ORMs) comme Hibernate, et les frameworks de requêtes
intégrées au langage comme le framework LINQ de Microsoft. Cependant,
la plupart de ces solutions ne permettent pas d'écrire des requêtes
visant plusieurs bases de données en même temps, et aucune ne permet
l'utilisation de logique d'application complexe dans des requêtes aux
bases de données.

Cette thèse présente un nouveau framework de requêtes intégrées au
langage nommé BOLDR qui permet d'écrire des requêtes dans des langages
de programmation généralistes et qui contiennent de la logique
d'application, et de les évaluer dans des bases de données
hétérogènes. Dans ce framework, les requêtes d'une application sont
traduites vers une représentation intermédiaire de requêtes. Puis,
elles sont typées en utilisant un système de type extensible par les
bases de données pour détecter dans quel langage de données chaque
sous-expression doit être traduite. Cette phase de typage permet
également de détecter certaines erreurs avant l'exécution. Ensuite,
les requêtes sont réécrites pour éviter le phénomène "d'avalanche de
requêtes" et pour profiter au maximum des capacités d'optimisation des
bases de données. Enfin, les requêtes sont envoyées aux bases de
données ciblées pour évaluation et les résultats obtenus sont
convertis dans le langage de programmation de l'application. Nos
expériences montrent que les techniques implémentées dans ce framework
sont applicables pour de véritables applications centrées données, et
permettent de gérer efficacement un vaste champ de requêtes intégrées
à des langages de programmation généralistes.