Applying Constraint Logic Programming to SQL Semantic Analysis
This addresses error detection in SQL queries for database users, but appears incremental as it builds on existing CLP and Datalog methods.
The paper tackles the problem of detecting errors in SQL queries by modeling them using Constraint Logic Programming (CLP) to analyze semantic properties like inconsistency and tautology, with an implementation showing performance data and testing in classroom settings.
This paper proposes the use of Constraint Logic Programming (CLP) to model SQL queries in a data-independent abstract layer by focusing on some semantic properties for signalling possible errors in such queries. First, we define a translation from SQL to Datalog, and from Datalog to CLP, so that solving this CLP program will give information about inconsistency, tautology, and possible simplifications. We use different constraint domains which are mapped to SQL types, and propose them to cooperate for improving accuracy. Our approach leverages a deductive system that includes SQL and Datalog, and we present an implementation in this system which is currently being tested in classroom, showing its advantages and differences with respect to other approaches, as well as some performance data. This paper is under consideration for acceptance in TPLP.