Speeding up symbolic reasoning for relational queries
Speeding up symbolic reasoning for relational queries
复制标题
加速关系查询的符号推理
DOI:
--
复制
发表时间:
2018
期刊:
影响因子:
--
通讯作者:
Rastislav Bodík
中科院分区:
文献类型:
--
作者:
Chenglong Wang;Alvin Cheung;Rastislav Bodík
The ability to reason about relational queries plays an important role across many types of database applications, such as test data generation, query equivalence checking, and computer-assisted query authoring. Unfortunately, symbolic reasoning about relational queries can be challenging because relational tables are multisets (bags) of tuples, and the underlying languages, such as SQL, can introduce complex computation among tuples. We propose a space refinement algorithm that soundly reduces the space of tables such applications need to consider. The refinement procedure, independent of the specific dataset application, uses the abstract semantics of the query language to exploit the provenance of tuples in the query output to prune the search space. We implemented the refinement algorithm and evaluated it on SQL using three reasoning tasks: bounded query equivalence checking, test generation for applications that manipulate relational data, and concolic testing of database applications. Using real world benchmarks, we show that our refinement algorithm significantly speeds up (up to 100×) the SQL solver when reasoning about a large class of challenging SQL queries, such as those with aggregations.