Au-delà des frontières entre langages de programmation et bases de données

par Julien Lopez

Thèse de doctorat en Informatique

Sous la direction de Véronique Benzaken.


  • 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 permet de 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. Dans cette thèse, nous détaillons la création d'un framework de requêtes intégrées au langage nommé BOLDR qui permet d'évaluer dans les bases de données des requêtes écrites dans des langages de programmation généralistes qui contiennent de la logique d'application, et qui ciblent différentes bases de données potentiellement basées sur des modèles de données différents. Dans ce framework, les requêtes d'une application sont traduites vers une représentation intermédiaire de requêtes, puis 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, et enfin envoyées pour évaluation vers les bases de données ciblées 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.

  • Titre traduit

    Breaking boundaries between programming languages and databases


  • Résumé

    Several classes of solutions allow programming languages to express queries: Specific APIs such as JDBC, Object-Relational Mappings (ORMs) such as Hibernate, and language-integrated query frameworks such as Microsoft's LINQ. However, most of these solutions do not allow for efficient cross-databases queries, and none allow the use of complex application logic from the programming language in queries. In this thesis, we create a language-integrated query framework called BOLDR that, in particular, allows the evaluation in databases of queries written in general-purpose programming languages that contain application logic, and that target different databases of possibly different data models. In this framework, application queries are translated to an intermediate representation, then rewritten in order to avoid query avalanches and make the most out of database optimizations, and finally sent for evaluation to the corresponding databases and the results are converted back to the application. Our experiments show that the techniques we implemented are applicable to real-world database applications, successfully handling a variety of language-integrated queries with good performances.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse\u00a0?

  • Bibliothèque : Université Paris-Sud. Service commun de la documentation. Bibliothèque électronique.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.