Database Queries in Java
In conventional programming languages like Java, the interface for accessing databases is often inelegant. Typically, an entire separate database query language must be embedded inside a conventional programming language for programmers to access the full power and speed of a database. Programmers, though, prefer working entirely from within their conventional programming languages, both for general-purpose computation and for database access. This thesis explores how database operations can be expressed using the existing syntax of conventional programming languages. Programmers are able to write all their code –both general purpose code and database access code– in a single language. To run these database operations efficiently though, algorithms are needed for finding these database operations and optimizing them. This thesis focuses on techniques that can be easily adopted because they do not require changes to existing compilers. Three systems have been developed: Queryll, JReq, and HadoopToSQL. Each system examines the problem from the context of functional-style code, imperative-style code, and MapReduce-style code respectively.
Keywords: databases ; MapReduce ; symbolic execution ; query languages ; Java ; bytecode rewriting ; bases de données ; MapReduce ; exécution symbolique ; langages de requêtes ; Java ; réécriture de bytecodeThèse École polytechnique fédérale de Lausanne EPFL, n° 4913 (2010)
Programme doctoral Informatique, Communications et Information
Faculté informatique et communications
Institut d'informatique fondamentale
Laboratoire de systèmes d'exploitation
Record created on 2010-10-28, modified on 2016-08-08