SQL∗: A recursive SQL

作者:

Highlights:

摘要

SQL, Structured Query Language, supported by most relational database systems since its introduction by IBM in the mid 1970s, has been widely accepted and has enjoyed much popularity because of its declarativeness and the simplicity of its English-like syntax and semantics.SQL satisfied classical database applications which merely involved basic database storage and retrieval operations. However, with the emergence of modern database applications such as CAD and SE databases, we have discovered shortcomings of SQL. A severe problem is the inability of SQL to handle recursion. A relation being defined can not be referenced in conjunction with its own definition. Consequently, a whole class of application problems which require the use of recursion can not be solved with the power of SQL alone.This paper has proposed an enhancement to SQL. The enhanced version is called Recursive SQL, or simply SQL∗. The paper begins with the examination of the recursion facilities of Datalog, a logic-based language, and then introduces a similar scheme to extend the syntax and semantics of SQL to provide recursive capabilities. The resultant language, SQL∗, has been implemented using a bottom-up incremental query evaluation strategy.SQL∗ makes it possible to express recursive queries as natural as they would be expressed in Datalog or in some other logic-based language. Moreover, SQL∗ still uses the original SQL-like syntax. Using SQL∗, modern database and knowledge-base applications now become feasible.

论文关键词:SQL,recursive query,transitive closure,datalog logic rules,semi-naive query evaluation,incremental tuples

论文评审过程:Received 12 June 1992, Available online 17 June 2003.

论文官网地址:https://doi.org/10.1016/0306-4379(93)90009-P