I-Rex: An Interactive Relational Query Debugger for SQL

I-Rex: An Interactive Relational Query Debugger for SQL
复制标题

I-Rex:用于 SQL 的交互式关系查询调试器

DOI:
10.1145/3478432.3499263
复制
发表时间:
2022
期刊:
Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 2
影响因子:
--
通讯作者:
Jun Yang
Jun Yang
中科院分区:
--
文献类型:
--
作者:
Yihao Hu;Zhengjie Miao;Zhiming Leong;Haechan Lim;Zachary Zheng;Sudeepa Roy;Kristin Stephens;Jun Yang

文献摘要

被引文献

相似文献

尽管SQL(结构化查询语言)一直很受欢迎,但学习和调试它仍然是一项挑战,即使对于具有相当编程经验的人来说也是如此。也缺乏具有高级调试器功能的SQL工具,如断点,分步执行和变量监视。我们介绍了I-Rex,一个交互式SQL调试器,它使用户能够通过其组成块跟踪查询的评估,可视化每个块如何根据其输入计算结果,并探索这些块之间的依赖关系。I-Rex可以集成到一个autograder中,它通常通过将提交的查询结果与测试数据库实例上的参考查询进行比较来工作。而不是显示完整的测试实例,这往往压倒学生,I-Rex自动生成小的,说明性的调试实例。在这个演示中,我们展示了I-Rex如何帮助学生跟踪复杂的SQL查询执行,学习各种查询结构的语义,并理解为什么查询会产生(或不产生)某些结果。我们还展示了如何教师可以定制I-Rex的一组SQL练习数据库。总的来说,我们展示了I-Rex如何支持SQL学习和调试,从而提高学生的自立能力,减轻教师的负担。
Despite the enduring popularity of SQL (Structured Query Language), it is challenging to learn and debug, even for people with considerable programming experience. There is also a lack of SQL tools with advanced debugger features like breakpoints, stepped execution, and variable watching. We present I-Rex, an interactive SQL debugger that enables users to trace the evaluation of a query by its constituent blocks, visualizing how each block computes results from its inputs, and exploring the dependencies among these blocks. I-Rex can be integrated into an autograder, which typically works by comparing the results of submitted queries against reference queries over test database instances. Instead of showing full test instances, which often overwhelm students, I-Rex automatically generates small, illustrative instances for debugging. In this demo, we show how I-Rex helps a student trace complex SQL query execution, learn the semantics of various query constructs, and understand why a query produces (or does not produce) certain results. We also show how a teacher can customize I-Rex for a set of SQL exercises over a database. Overall, we demonstrate how I-Rex supports SQL learning and debugging, thereby increasing students' self-reliance and reducing the burden on the teaching staff.