HeadlinesBriefing favicon HeadlinesBriefing.com

Prela查询语言:11行SQL替代

Hacker News •
×

Prela 是一种正在加州大学洛杉矶分校 Re PL 实验室开发的查询语言。该语言与 SQL 截然不同,但其核心思想却相当简单。在本简短的教程中,我们将使用 Python 构建 Prela 的一个玩具版本,以理解其核心原理。

下面的查询查找每一部由美国公司制作的电影,并且标题中包含角色姓名,输出电影标题以及每位演员的别名。注意,等效的 SQL 查询需要超过 20 行。

Prela 的第一个特殊之处在于它仅使用二元关系,即具有两列的表。听起来这可能很受限,但将多列宽表进行“二元化”是很容易的。

专注于二元关系的动机是因为它们可以推广为函数。函数之所以强大,是因为它们可以组合,这使得它们成为程序的构建块。函数将每个输入映射到唯一的输出,而关系则可以将输入映射到多个不同的输出。从某种意义上说,关系可以被视为一种非确定性函数。

组合的强大之处在于当我们链式调用多个 .select 时。由于通过外键连接几乎总是需要“解析”ID 到一行,Prela 会自动插入该步骤,从而可以编写下面的查询,它的阅读方式就像“一部电影的公司的国家”一样!

关键实体:地点:UCLA Re PL