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.

Source link