Translating SQL Into Relational Algebra: Optimization, Semantics, and Equivalence of SQL Queries
IEEE Transactions on Software Engineering
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Tracing the lineage of view data in a warehousing environment
ACM Transactions on Database Systems (TODS)
A Multi-Set Extended Relational Algebra - A Formal Approach to a Practical Issue
Proceedings of the Tenth International Conference on Data Engineering
Theoretical Foundations for the Declarative Debugging of Lazy Functional Logic Programs
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
Algorithmic program debugging
How to look busy while being as lazy as ever: the Implementation of a lazy functional debugger
Journal of Functional Programming
Database Systems: The Complete Book
Database Systems: The Complete Book
A Theoretical Framework for the Declarative Debugging of Datalog Programs
Semantics in Data and Knowledge Bases
Provenance for nested subqueries
Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology
A survey on algorithmic debugging strategies
Advances in Engineering Software
A deductive database with datalog and SQL query languages
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Algorithmic debugging of SQL views
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Observing SQL queries in their natural habitat
ACM Transactions on Database Systems (TODS)
Hi-index | 0.00 |
This paper presents a debugging technique for diagnosing errors in SQL views. The debugger allows the user to specify the error type, indicating if there is either a missing answer (a tuple was expected but it is not in the result) or a wrong answer (the result contains an unexpected tuple). This information is employed for slicing the associated queries, keeping only those parts that might be the cause of the error. The validity of the results produced by sliced queries is easier to determine, thus facilitating the location of the error. Although based on the ideas of declarative debugging, the proposed technique does not use computation trees explicitly. Instead, the logical relations among the nodes of the trees are represented by logical clauses that also contain the information extracted from the specific questions provided by the user. The atoms in the body of the clauses correspond to questions that the user must answer in order to detect an incorrect relation. The resulting logic program is executed by selecting at each step the unsolved atom that yields the simplest question, repeating the process until an erroneous relation is detected. Soundness and completeness results are provided. The theoretical ideas have been implemented in a working prototype included in the Datalog system DES.