Foundations and Trends® in Programming Languages > Vol 3 > Issue 1

Computer-Assisted Query Formulation

By Alvin Cheung, University of Washington, USA, akcheung@cs.washington.edu | Armando Solar-Lezama, Massachusetts Institute of Technology, USA, asolar@csail.mit.edu

 
Suggested Citation
Alvin Cheung and Armando Solar-Lezama (2016), "Computer-Assisted Query Formulation", Foundations and TrendsĀ® in Programming Languages: Vol. 3: No. 1, pp 1-94. http://dx.doi.org/10.1561/2500000018

Publication Date: 14 Jun 2016
© 2016 A. Cheung and A. Solar-Lezama
 
Subjects
 

Free Preview:

Download extract

Share

Download article
In this article:
1. Introduction
2. Query Processing
3. Program Synthesis
4. Using Verified Lifting to Rewrite Code into SQL
5. Assisting Users Specify Database Queries
6. Conclusion and Future Work
References

Abstract

Database management systems (DBMS) typically provide an application programming interface for users to issue queries using query languages such as SQL. Many such languages were originally designed for business data processing applications. While these applications are still relevant, two other classes of applications have become important users of data management systems: (a) web applications that issue queries programmatically to the DBMS, and (b) data analytics involving complex queries that allow data scientists to better understand their datasets. Unfortunately, existing query languages provided by database management systems are often far from ideal for these application domains. In this tutorial, we describe a set of technologies that assist users in specifying database queries for different application domains. The goal of such systems is to bridge the gap between current query interfaces provided by database management systems and the needs of different usage scenarios that are not well served by existing query languages. We discuss the different interaction modes that such systems provide and the algorithms used to infer user queries. In particular, we focus on a new class of systems built using program synthesis techniques, and furthermore discuss opportunities in combining synthesis and other methods used in prior systems to infer user queries.

DOI:10.1561/2500000018
ISBN: 978-1-68083-036-1
108 pp. $75.00
Buy book (pb)
 
ISBN: 978-1-68083-037-8
108 pp. $130.00
Buy E-book (.pdf)
Table of contents:
1. Introduction
2. Query Processing
3. Program Synthesis
4. Using Verified Lifting to Rewrite Code into SQL
5. Assisting Users Specify Database Queries
6. Conclusion and Future Work
References

Computer-Assisted Query Formulation

Database management systems (DBMS) typically provide an application programming interface for users to issue queries using query languages such as SQL. Many such languages were originally designed for business data processing applications. While these applications are still relevant, two other classes of applications have become important users of data management systems: (1) web applications that issue queries programmatically to the DBMS, and (2) data analytics involving complex queries that allow data scientists to better understand their datasets. Unfortunately, existing query languages provided by database management systems are often far from ideal for these application domains.

Computer-Assisted Query Formulation describes a set of technologies that assist users in specifying database queries for different application domains. The goal of such systems is to bridge the gap between current query interfaces provided by database management systems and the needs of different usage scenarios that are not well served by existing query languages. This monograph discusses the different interaction modes that such systems provide and the algorithms used to infer user queries. In particular, it focuses on a new class of systems built using program synthesis techniques, and furthermore discusses opportunities in combining synthesis and other methods used in prior systems to infer user queries.

 
PGL-018