R-SQL: An SQL Database System with Extended Recursion

Authors

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

DOI:

https://doi.org/10.14279/tuj.eceasst.64.987

Abstract

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.

Downloads

Published

2014-11-26

How to Cite

[1]
F. Sáenz-Pérez, S. Nieva, J. Sanchez-Hernandez, and G. Aranda, “R-SQL: An SQL Database System with Extended Recursion”, eceasst, vol. 64, Nov. 2014.