Datalog是一种用于查询关系数据的可爱语言。它简单、清晰、组合良好,并且支持递归查询,无需额外语法。
SQLite是一个出色的嵌入式数据库,它似乎是一个强大的查询引擎,能够处理递归查询 - 请参阅该页面底部的示例,以生成 Mandelbrot 集并找到 Sudoko 谜题的所有可能解决方案!
我很想知道是否有一种相当标准的方法可以将数据记录查询转换为 SQLite 支持的递归 SQL,或者是否有提供此功能的库。
DLVDB 是递归 Datalog 的解释器,其扩展数据使用 ODBC 数据库连接:http ://www.dlvsystem.com/dlvdb/
除此之外,纸
S. Ceri、G. Gottlob 和 L. Tanca。1989. 你一直想知道的关于 Datalog 的事情(而且从来不敢问)。IEEE Trans。关于诺尔。和数据工程。1,1(1989 年 3 月),146-166。http://dx.doi.org/10.1109/69.43410
为将 Datalog 转换为关系代数提供了理论背景和一些指导。