将SQL的非聚合函数翻译成关系代数表达式?

问题描述 投票:0回答:1

我们如何将结构化查询语言的非聚合函数转换为关系代数表达式?

我知道如何表达聚合函数。

例如我们如何编写年份函数(取日期格式列)?

只是年份(日期)?

select e.name, year(e.dateOfEmployment)
from Employees e
relational-algebra
1个回答
0
投票

(这是一个非常合理的问题,我不明白为什么它应该被否决。)

RA 中的“关系”意味着使用集合论方法将函数表达为数学关系。 (它意味着,正如人们通常认为的那样,将一个表或数据与另一个表或数据相关联,如“实体关系”建模中那样。)我无法从我的脑海中获得一个非常简洁的参考,但从这里开始http://en.wikipedia.org/wiki/Binary_relation 并点击链接。

这如何在实际 RA 的背景下回答您的问题?看看这个: http://www.dcs.warwick.ac.uk/~hugh/TTM/APPXA.pdf,特别是“将运算符视为关系”部分。

了解如何“应用”关系 PLUS 和 SQRT(使用 COMPOSE,它是 Natural JOIN 和 PROJECT 的简写)以充当函数。

对于您的具体问题,您需要具有两个属性的关系(类型“日期”和“年份”)。

© www.soinside.com 2019 - 2024. All rights reserved.