R-SQL: An SQL Database System with Extended Recursion

Fernando Sáenz-Pérez, Susana Nieva, Jaime Sanchez-Hernandez, Gabriel Aranda


The relational database language SQL:1999 standard supports recursion, but this approach is limited to the linear case. Moreover, mutual recursion is not supported, and negation cannot be combined with recursion. We designed the language
R-SQL to overcome these limitations, improving termination properties in recursive definitions. In addition we developed a proof of concept implementation of an R-SQL system. In this paper we describe in detail an improved system enhancing performance. It can be integrated into existing RDBMS's, extending them with the  aforementioned benefits of R-SQL. The system processes an R-SQL database definition obtaining its extension in tables of an RDBMS (such as PostgreSQL and DB2). It is implemented in SWI-Prolog and it produces a Python script that, upon execution, computes the result of the R-SQL relations. We provide some performance results showing the efficiency gains w.r.t. the previous version. We also include a comparative analysis including some representative relational a deductive systems.

Full Text:


DOI: http://dx.doi.org/10.14279/tuj.eceasst.64.987

DOI (PDF): http://dx.doi.org/10.14279/tuj.eceasst.64.987.972

Hosted By Universitätsbibliothek TU Berlin.