Affiliation:
1. LMF, France / Université Paris-Saclay, France
2. LMF, France / CNRS, France / Université Paris-Saclay, France
3. IBM Research, USA
4. Docusign, USA
Abstract
SQL is by far the most widely used and implemented query language. Yet, on some key features, such as correlated queries and NULL value semantics, many implementations diverge or contain bugs. We leverage recent advances in the formalization of SQL and query compilers to develop DBCert, the first mechanically verified compiler from SQL queries written in a canonical form to imperative code. Building DBCert required several new contributions which are described in this paper. First, we specify and mechanize a complete translation from SQL to the Nested Relational Algebra which can be used for query optimization. Second, we define Imp, a small imperative language sufficient to express SQL and which can target several execution languages including JavaScript. Finally, we develop a mechanized translation from the nested relational algebra to Imp, using the nested relational calculus as an intermediate step.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference29 articles.
1. Serge Abiteboul , Richard Hull , and Victor Vianu . 1995. Foundations of Databases . Addison-Wesley . Serge Abiteboul, Richard Hull, and Victor Vianu. 1995. Foundations of Databases. Addison-Wesley.
2. 2022. AlaSQL JavaScript SQL Database Library. http://alasql.org. 2022. AlaSQL JavaScript SQL Database Library. http://alasql.org.
3. Handling Environments in a Nested Relational Algebra with Combinators and an Implementation in a Verified Query Compiler
4. Q*cert
5. A Coq mechanised formal semantics for realistic SQL queries: formally reconciling SQL and bag relational algebra